mirror of
https://github.com/dtzp555-max/ocp.git
synced 2026-07-21 21:15:09 +00:00
refactor: hoist port literal to lib/constants.mjs + CI gate (v3.16.4) (#98)
Closes the structural side of the port-drift cascade addressed by
v3.16.2/v3.16.3. Those releases reverted the literal line-by-line; this
one removes the invitation to drift.
Changes:
* NEW lib/constants.mjs — exports DEFAULT_PORT=3456, LOCAL_HOST,
OPENAI_API_BASE, LOCAL_PROXY_URL.
* server.mjs / setup.mjs / scripts/upgrade.mjs / scripts/doctor.mjs
(x2) / scripts/sync-openclaw.mjs all import DEFAULT_PORT from
lib/constants.mjs instead of hardcoding "3456".
* .github/workflows/alignment.yml:
- path filter extended to setup.mjs, scripts/**, lib/**,
ocp, ocp-connect.
- NEW job port-spot hard-fails any PR that introduces a hardcoded
"3478" or "3456" literal outside EXEMPT_REGEX (lib/constants.mjs,
test-features.mjs, ocp/ocp-connect bash CLIs, docs, the workflow
itself).
* Doc-comment rewording so CI grep finds zero hits.
No behavior change for any user. CLAUDE_PROXY_PORT env var still wins
at runtime; only the unset-env fallback now flows through one constant.
ALIGNMENT.md note: server.mjs change is one import + one literal swap,
mechanical. No cli.js operation changed; the citation requirement does
not apply.
cli.js: not applicable — mechanical refactor, no behavior change.
Co-authored-by: dtzp555 <dtzp555@gmail.com>
This commit is contained in:
@@ -1,5 +1,47 @@
|
||||
# Changelog
|
||||
|
||||
## v3.16.4 — 2026-05-13
|
||||
|
||||
### Refactor — port-literal SPOT + CI guardrail
|
||||
|
||||
Closes the structural side of the port-drift cascade addressed by v3.16.2
|
||||
and v3.16.3. Those two releases reverted plist / plugin / scripts back to
|
||||
3456 line-by-line, but the underlying invitation to drift — a hardcoded
|
||||
port literal scattered across six source files — was still intact.
|
||||
|
||||
Changes:
|
||||
|
||||
- **New `lib/constants.mjs`** — single source of truth for shared literals.
|
||||
Exports `DEFAULT_PORT = 3456`, `LOCAL_HOST = "127.0.0.1"`,
|
||||
`OPENAI_API_BASE = "/v1"`, `LOCAL_PROXY_URL`.
|
||||
- **`server.mjs:127`, `setup.mjs:36`, `scripts/upgrade.mjs:137`,
|
||||
`scripts/doctor.mjs:84` + `:205`, `scripts/sync-openclaw.mjs:73`** —
|
||||
all replaced with imports from `lib/constants.mjs`. Behavior is
|
||||
identical; the literal `3456` now exists in exactly one place per
|
||||
language (`lib/constants.mjs` for `.mjs`, `ocp` + `ocp-connect` for
|
||||
bash, `test-features.mjs` for pinned historical-port tests).
|
||||
- **`.github/workflows/alignment.yml`** — extended the path filter to
|
||||
`setup.mjs`, `scripts/**`, `lib/**`, `ocp`, `ocp-connect`. Added a new
|
||||
`port-spot` hard-fail job that greps for any hardcoded `3478` or `3456`
|
||||
literal in `.mjs/.js/.ts/.json` outside the EXEMPT_REGEX (which lists
|
||||
`lib/constants.mjs`, `test-features.mjs`, the bash CLIs, docs, and the
|
||||
workflow itself). Any future PR re-introducing a hardcoded port
|
||||
literal will be blocked at CI before it can cascade.
|
||||
- Doc comments in `server.mjs` env-var summary and `setup.mjs` usage
|
||||
banner reworded so the literal `3456` no longer appears as
|
||||
documentation text (CI grep is intentionally aggressive — it does not
|
||||
parse comments — so doc strings reference `DEFAULT_PORT from
|
||||
lib/constants.mjs` instead).
|
||||
|
||||
No behavior change for any user. `CLAUDE_PROXY_PORT` env var remains
|
||||
the runtime override; the only difference is the unset-env fallback
|
||||
now flows through one shared constant.
|
||||
|
||||
ALIGNMENT.md hard-requirements: this PR modifies `server.mjs` (one-line
|
||||
import + one literal swap, mechanical). No cli.js operation changed;
|
||||
the citation requirement does not apply. SPOT principle (Rule 2 spirit)
|
||||
is the entire motivation.
|
||||
|
||||
## v3.16.3 — 2026-05-13
|
||||
|
||||
### Fixes — completes v3.16.2 port-drift revert
|
||||
|
||||
Reference in New Issue
Block a user