You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# AI Agent Guidelines: Version Updates and Releases
2
+
3
+
This document provides instructions for AI coding assistants on how to perform version bumps and manage releases in this repository.
4
+
5
+
## Steps to Perform a Version Update
6
+
7
+
When asked to update the version/bump the release tag (e.g., from `42` to `43`):
8
+
9
+
### 1. Update Version References in Documentation
10
+
* Search **[README.md](file:///Users/justindray/src/docker-http-https-echo/README.md)** for all instances of the old version tag (e.g. `:42`) and replace them with the new version tag (e.g. `:43`).
11
+
* Make sure all docker run examples and registry path snippets in the documentation match the new tag.
12
+
13
+
### 2. Update Orchestration Files
14
+
* Open **[docker-compose.yml](file:///Users/justindray/src/docker-http-https-echo/docker-compose.yml)** and update the image tag namespace to match the new version:
15
+
```yaml
16
+
image: justin8/http-https-echo:<NEW_VERSION>
17
+
```
18
+
19
+
### 3. Update the Changelog
20
+
* Open **[CHANGELOG.md](file:///Users/justindray/src/docker-http-https-echo/CHANGELOG.md)** and add a new version block at the very top of the file:
21
+
```markdown
22
+
## Version `<NEW_VERSION>` - YYYY-MM-DD
23
+
* Brief description of change 1
24
+
* Brief description of change 2
25
+
```
26
+
*(Format the date as `YYYY-MM-DD` according to the system current local time).*
27
+
28
+
### 4. Running the Test Suite
29
+
***CRITICAL**: Before committing any changes or creating releases, always verify that the codebase passes the local test suite using your container CLI:
30
+
```bash
31
+
export DOCKER=container # Or docker
32
+
./tests.sh
33
+
```
34
+
*(Never skip this step, as changes to logging formats or startup behavior can break exact line-count assertions in the test suite).*
35
+
36
+
---
37
+
38
+
## CI/CD and Release Mechanisms
39
+
40
+
Our GitHub workflow **[publish.yml](file:///Users/justindray/src/docker-http-https-echo/.github/workflows/publish.yml)** is configured as follows:
41
+
42
+
***Commit to `master`**: Automatically builds and publishes the `:latest` image tag to both Docker Hub and GitHub Container Registry.
43
+
***Semantic Tag Release**: Pushing any tag (e.g., `v42`) triggers the publication of versioned images (e.g. `:42` and `:v42`).
Copy file name to clipboardExpand all lines: CHANGELOG.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,10 @@
1
+
## Version `42` - 2026-07-19
2
+
* Added a real-time web-based log streaming dashboard on port `8081` (configurable via `LOG_SERVER_PORT`).
3
+
* Captures standard and Morgan logs in the container and displays them as colorized lines or interactive collapsible JSON request trees.
4
+
* Optimized server shutdown processes with instant connection termination for keep-alive and SSE clients.
5
+
* Updated CI/CD publish workflows to push the `latest` tag on every commit to `master` and tag releases on Git tags.
6
+
* Refactored local testing environment to support standard `$DOCKER` environment variables (e.g., using macOS native `container` command) with direct container removal (`rm -f`).
7
+
1
8
## Version `41` - 2026-06-14
2
9
* Added support for additional trusted proxies via `ADDITIONAL_TRUSTED_PROXIES` by [JackMyers001](https://github.com/justin8/docker-http-https-echo/pull/101)
3
10
* Express update includes the new way of catching all paths
Copy file name to clipboardExpand all lines: README.md
+21-21Lines changed: 21 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,8 +8,8 @@ It comes with various options that can manipulate the response output, see the t
8
8
9
9

10
10
11
-
The image is available on [Docker Hub](https://hub.docker.com/r/justin8/http-https-echo): `justin8/http-https-echo:41`
12
-
The image is available on [Github Container Registry](https://github.com/justin8/docker-http-https-echo/pkgs/container/http-https-echo): `ghcr.io/justin8/http-https-echo:41`
11
+
The image is available on [Docker Hub](https://hub.docker.com/r/justin8/http-https-echo): `justin8/http-https-echo:42`
12
+
The image is available on [Github Container Registry](https://github.com/justin8/docker-http-https-echo/pkgs/container/http-https-echo): `ghcr.io/justin8/http-https-echo:42`
13
13
14
14
Please do not use the `:latest` tag as it will break without warning, use a specific version instead.
15
15
@@ -47,7 +47,7 @@ This image is executed as non root by default and is fully compliant with Kubern
47
47
48
48
Run with Docker
49
49
50
-
docker run -p 8080:8080 -p 8443:8443 --rm -t justin8/http-https-echo:41
50
+
docker run -p 8080:8080 -p 8443:8443 --rm -t justin8/http-https-echo:42
51
51
52
52
Or run with Docker Compose
53
53
@@ -64,13 +64,13 @@ You can choose a different internal port instead of 8080 and 8443 with the `HTTP
64
64
65
65
In this example I'm setting http to listen on 8888, and https to listen on 9999.
@@ -86,7 +86,7 @@ The certificates are at `/app/fullchain.pem` and `/app/testpk.pem`.
86
86
You can use volume mounting to substitute the certificate and private key with your own.
87
87
88
88
my-http-listener:
89
-
image: justin8/http-https-echo:41
89
+
image: justin8/http-https-echo:42
90
90
ports:
91
91
- "8080:8080"
92
92
- "8443:8443"
@@ -101,14 +101,14 @@ You can use the environment variables `HTTPS_CERT_FILE` and `HTTPS_KEY_FILE` to
101
101
102
102
By default, Express is configured to trust forwarded proxy headers from loopback, link-local, and private IP ranges. To also trust additional proxy IPs or subnets, set `ADDITIONAL_TRUSTED_PROXIES` to a single value or a comma-separated list.
Now make your request with `Authentication: eyJ...` header (it should also work with the `Authentication: Bearer eyJ...` schema too):
@@ -121,7 +121,7 @@ And in the output you should see a `jwt` section.
121
121
122
122
In the log output set the environment variable `DISABLE_REQUEST_LOGS` to true, to disable the specific ExpressJS request log lines. The ones like `::ffff:172.17.0.1 - - [03/Jan/2022:21:31:51 +0000] "GET /xyz HTTP/1.1" 200 423 "-" "curl/7.68.0"`. The JSON output will still appear.
By default, the headers in the response body are lowercased. To attempt to preserve the case of headers in the response body, set the environment variable `PRESERVE_HEADER_CASE` to true.
0 commit comments