docs: bug-1909..1912 fixed; controller-peers-env-fallback gap notes resolved

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-10-03 13:07:37 +00:00
parent ef6e562cde
commit 91782e4089
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
6 changed files with 272 additions and 12 deletions

View file

@ -1,8 +1,8 @@
---
id: "bug-1909"
status: "open"
status: "fixed"
status_updated: "2026-10-03"
status_note: "newly logged"
status_note: ""
component: "tooling"
severity: "wrong-result"
timestamp: "2026-10-03T08:09:49Z"
@ -11,6 +11,7 @@ occurrences: 1
files: ["src/tools/test-version-startup-consistency.sh"]
tags: ["test-script", "version", "dirty-fingerprint", "scheduler"]
related: []
fix_commits: ["ef6e562c"]
---
# bug-1909: test-version-startup-consistency.sh scheduler check fails on any dirty tree (fingerprint vs -dirty)
@ -41,15 +42,15 @@ FAIL [scheduler]: commit id MISMATCH ('ac7a4385-f4637557' vs 'ac7a4385-dirty')
- Evidence: not kept (the script deletes its work dir on exit). Separately, the script's apiserver `go build` fails on this machine with "module lookup disabled by GOPROXY=off" (no Go module cache) — unrelated environment limitation.
## Root cause
TODO: required for fixed/partial
`check_consistency()` in `src/tools/test-version-startup-consistency.sh` (written for build-time-versioning Req 2.2) requires the `--version` and startup-log commit ids to be byte-identical. The later dirty-content-fingerprint feature deliberately made `--version` show `<sha>-<8-hex fingerprint>` on a dirty tree while the startup log keeps `<sha>-dirty` (its requirements.md scope note and Req 3.2 call this a scoped exception), but this script was never updated, so it fails on any dirty tree.
## Fix
TODO: required for fixed/partial
`check_consistency()` now treats exactly that pairing as agreement: `--version` matching `^(.+)-[0-9a-f]{8}$` and the startup log equal to `<same sha>-dirty` (the fingerprint is `sha256sum | cut -c1-8`, `xce-build.sh`). Anything else is still compared byte-for-byte. Self-test cases (e) (pairing accepted) and (f) (different sha, or a fingerprint against a clean log, rejected) added to `demonstrate_detection_capability()`; header, PASS line and final banner reworded.
## Verification
- Test: TODO: name + file; RED before the fix, GREEN after
- Suites: TODO: suite results and build profile
- Live: TODO: soak/deploy run, or n/a and why
- Test: `demonstrate_detection_capability()` case (e) in `src/tools/test-version-startup-consistency.sh` — RED before the fix (extracted harness: `FAIL [DEMO-dirty-fingerprint-pairing]: commit id MISMATCH`), GREEN after; cases (a)-(c), (f) still reject.
- Suites: `bash src/tools/test-version-startup-consistency.sh` exit 0 on a dirty tree (`[scheduler] --version fingerprint '66520e6b-a46c0a00' pairs with startup log '66520e6b-dirty'`), 2026-10-03; `xce-build.sh all --incremental` (asan) green.
- Live: n/a (test-script defect)
## References
- Related: none