Skip to content

Commit cef2e01

Browse files
committed
Cover complete source inputs and version verification receipts
1 parent 617ac69 commit cef2e01

16 files changed

Lines changed: 635 additions & 31 deletions

‎docs/CONTEXT.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ and external AI CLIs require a direct user request. Never merge old work implici
8282
- Existing Commons run 49092854-f9bd-4b7a-8d12-4ac5ea0e5f70 retains the approved,
8383
unmerged safe-timer change from job 811bdb98-bcbb-4b65-80b9-f19693aef6b4.
8484
Preserve it. 29 earlier lab experiments were verified before this release work.
85-
- Public source: antropos17/commit-zero at c42faa4; all three CI jobs passed with local a13df1e's identical tree. Preserve separate histories.
85+
- Public source: antropos17/commit-zero at 617ac69; all three CI jobs passed with local 7e56c29's identical tree. Preserve separate histories.
8686
README GIF is a 15.8s condensed walkthrough of retained Sequence Kit work,
8787
not a continuous live recording. Static fallback included; desktop/mobile and all
8888
three CI jobs passed. Evidence: runtime/verification/github-readme-gif-2026-10-19.json.

‎docs/DEVELOPMENT.md‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,33 @@ the final gate. These local summaries are disposable and not signed release rece
7878
There is one summary per known suite, one lint cache and project-local temporary
7979
output under `.cache/tmp`. Child processes receive TEMP/TMP/TMPDIR explicitly.
8080

81+
### Source identity and inspection
82+
83+
`npm run source:inspect [-- --samples 5]` reports source-index version, file/byte
84+
counts, hashes and measured fingerprint durations. Its `inspected` state is a
85+
read-only input probe; full/browser gates remain separate. The local report is
86+
`.cache/verification/latest-source-inspection.json`, replaced with running/blocked
87+
when appropriate, inside the same validated workspace directory as other receipts.
88+
89+
Source index v2 includes every regular tracked input in an ordinary Git checkout,
90+
plus registered working source/assets/docs. It includes root policy/configuration,
91+
legacy prototype files and vendored skill references. Git modes participate in the
92+
hash. Source-only archives use the maintained registered inputs without requiring
93+
Git metadata; update `scripts/project-files.mjs` and the project map when adding
94+
an archive input outside the existing roots. No vendored skill engine is executed.
95+
96+
Root private configuration, runtime, dependencies, build output and cache material
97+
stay outside this index. Forced tracked private/runtime entries, links, unresolved
98+
stages and sparse/assume-unchanged index flags block source evidence. Inspect the
99+
reported input and `git ls-files -v` before correcting the intended Git state.
100+
The probe does not alter index flags, Git configuration or retained data. Raw
101+
working-byte hashes can differ between Windows and Linux line endings; public
102+
Git trees and each environment's frozen receipts provide their own association.
103+
Earlier v1 receipts retain their dated narrower scope; rerun both full gates after
104+
the v2 change before accepting the expanded source. Full and grouped-browser
105+
receipts carry `sourceIndexVersion`; the evidence preflight requires the current
106+
version as well as matching hashes, so an older-version stamp cannot qualify.
107+
81108
## Find and diagnose problems
82109

83110
- `npm run doctor -- --json`: structured health; use `--url http://127.0.0.1:PORT`

‎docs/ECOSYSTEM-DECISIONS.md‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,26 @@ No substitute model is inferred from a familiar display name.
4747

4848
## Other adopted decisions and their evidence
4949

50+
### Complete the source evidence boundary before publication automation
51+
52+
The primary [Git ls-files reference](https://git-scm.com/docs/git-ls-files), accessed
53+
2026-10-19, documents NUL-delimited names, stage/mode records and hidden/sparse
54+
flags. Decision: extend the shared source index to tracked regular inputs and
55+
registered archive/working inputs, and reject unsupported index states. Expected
56+
benefit: root policy, configuration and legacy/reference changes invalidate frozen
57+
receipts. An actual omitted-input inventory and controlled metadata edit exposed
58+
the gap; nine filesystem/Git/CLI tests verify the correction. [Measurements and
59+
reproduction](WORKFLOW-MEASUREMENTS.md#source-index-coverage-and-measured-cost).
60+
The read-only inspection tool adds no provider, model execution or security sandbox.
61+
62+
Git's [commit-tree](https://git-scm.com/docs/git-commit-tree),
63+
[hash-object](https://git-scm.com/docs/git-hash-object) and
64+
[compare-and-swap ref update](https://git-scm.com/docs/git-update-ref) documentation
65+
were also reviewed for a reversible publication preparer. Decision: defer that
66+
command until source evidence is complete and qualified; continue the established
67+
explicit copy/tree-compare/normal-push workflow. No new publication executor,
68+
release or tag was created by this research.
69+
5070
### Workspace and environment boundaries
5171

5272
Primary sources accessed 2026-10-19:

‎docs/HANDOFF-2026-10-19.md‎

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ tracks dated decisions and receipts; this file is the operational entry point.
88
## Repositories and state
99

1010
- Working repository: `X:\ai-github`, branch `codex/development-foundation`,
11-
latest fully checked local commit `a13df1e` at this checkpoint. The local data and model
11+
latest fully checked local commit `7e56c29` at this checkpoint. The local data and model
1212
installation are here. Recheck status before acting; this file can age.
1313
- Public repository: [antropos17/commit-zero](https://github.com/antropos17/commit-zero),
14-
`main` at `c42faa484be0d9e068b23fd1b583f344a63e1e15` after a normal push.
14+
`main` at `617ac691c585e0c2562dc3b79d0d470c42feaf8a` after a normal push.
1515
Its separate checkout is `.cache/publication`. The histories are unrelated;
16-
the public tree matches local `a13df1e` (`9a8c3381af33da4f83097347e3f8db03c083a8c5`).
17-
Account sign-in/discovery recovery changes are awaiting final gates.
16+
the public tree matches local `7e56c29` (`db03106197ea4af66fb88202456de11c6cbf8a4c`).
17+
Source-index v2/inspection changes are awaiting final gates.
1818
Do not merge histories, reset the local branch or force push. Recheck remote
1919
before publishing anything else.
20-
- Public CI [run 39237404863](https://github.com/antropos17/commit-zero/actions/runs/39237404863)
21-
passed full gate, Chromium and runtime dependency audit for `c42faa4`. Local
20+
- Public CI [run 39239888882](https://github.com/antropos17/commit-zero/actions/runs/39239888882)
21+
passed full gate, Chromium and runtime dependency audit for `617ac69`. Local
2222
`evidence:status` confirmed equal trees and current full/browser receipts. The
2323
preceding retry-fixture failure at `5f9f88e` is preserved in the mission log.
2424
- This mission has not run local or hosted model inference, spawned product
@@ -141,20 +141,30 @@ HTTP tests cover error details, unfinished-body timeout, cancellation and invali
141141
JSON. [Failure](media/rankings-unavailable-2026-10-19.png) and
142142
[narrow retained rows](media/rankings-last-known-2026-10-19.png) are inspected
143143
Chrome captures in disposable services with routed failures and simulated scores.
144-
Its frozen full 85/85 and Chrome 29/29 gates, then public CI, passed. The pending
144+
Its frozen full 85/85 and Chrome 29/29 gates, then public CI, passed. The completed
145145
account-page unit validates discovery types, offers explicit Refresh without
146146
reloading the draft, scopes unknown availability, and restores failed-auth focus.
147147
Four focused Chrome tests passed, including malformed data and a routed OAuth
148148
start rejection with no external request. [Actual 390px error view](media/sign-in-discovery-unavailable-2026-10-19.png)
149149
uses an explicit fake draft and discovery failure in disposable services; real
150150
OAuth login remains unqualified.
151+
Its full 85/85 and Chrome 33/33 gates, then public CI, passed. A later inventory
152+
found 147 tracked paths outside the older v1 hash boundary. The pending v2 index
153+
includes all regular tracked inputs and registered working/archive sources,
154+
including root metadata, legacy prototype files and vendored references. It
155+
records modes and rejects private/runtime paths, links, unsupported/hidden index
156+
states and ambient Git overrides. Nine source-index/inspection tests and the
157+
26-test focused tooling suite passed before the final receipt-version refinement.
158+
`npm run source:inspect -- --samples 5` is a read-only probe; it does not run gates
159+
or qualify models/sandboxes. Full/browser v2 gates and current-version preflight
160+
remain required. Earlier v1 results retain their narrower historical scope.
151161

152-
- Latest local frozen full gate at `a13df1e`: 85/85 Node tests, compiled DOM/axe
162+
- Latest local frozen full gate at `7e56c29`: 85/85 Node tests, compiled DOM/axe
153163
2/2, build and static serving passed. Stable source hash
154-
`71009df00efbbf03638e1258a3ea3210258e18c6fa4113f7b4a48998f953dd9a`;
155-
receipts `runtime/verification/ranking-recovery-{full,browser}-2026-10-19.json`
164+
`0b8ac29021e0e1aad89f83b965fe5fb22748503da4694d33420efdf908ff5060`;
165+
receipts `runtime/verification/auth-recovery-{full,browser}-2026-10-19.json`
156166
(ignored by Git).
157-
- Installed Chrome browser suite passed 29/29 at desktop and 390px. Real captures
167+
- Installed Chrome browser suite passed 33/33 at desktop and 390px. Real captures
158168
are `runtime/verification/commons-first-run-{desktop,narrow}-2026-10-19.png`,
159169
`commons-provider-offline-desktop-2026-10-19.png` and catalog captures. Tests
160170
used in-memory services; provider-health responses were controlled in the
@@ -223,7 +233,7 @@ OAuth login remains unqualified.
223233

224234
## Next work, in order
225235

226-
1. Complete account sign-in/discovery recovery: run grouped Chrome and `npm run check` on frozen source,
236+
1. Complete source-index v2: run grouped Chrome and `npm run check` on frozen source,
227237
commit it, copy the unpublished local commit into the separate public
228238
checkout, compare Git trees, push without force and inspect public CI.
229239
Record exact SHA and receipt.

‎docs/MISSION-2026-10-19.md‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Start: 03:46:17 UTC. Deadline: 15:46:17 UTC. Final integration reserve begins 14
1212

1313
## Current action
1414

15-
Finish account sign-in/discovery recovery after three preserved Chrome failures. Keep local drafts/navigation through failed or malformed discovery, offer explicit refresh with unknown availability, and restore failed-auth focus. Four focused Chrome tests passed with no external provider request; complete frozen full gates and publication. Keep all new profiles disabled. The final integration reserve still begins at 14:16:17 UTC.
15+
Finish source-index v2 after a measured coverage gap. Add tracked metadata/modes and registered archive/working inputs, reject hidden/private/linked index states, and label full/browser receipt versions. Nine host/CLI tests and focused tooling passed before the final version refinement. Run frozen gates and publish; investigate page-error containment next. Keep all new profiles disabled. The final integration reserve still begins at 14:16:17 UTC.
1616

1717
## Decisions and limits
1818

@@ -104,4 +104,9 @@ Finish account sign-in/discovery recovery after three preserved Chrome failures.
104104
- Chrome exposed a discovery error with no in-page repeat, malformed provider data replacing the workspace with its global error boundary, and a failed local sign-in losing keyboard focus. Baselines: `runtime/verification/auth-discovery-baseline-2026-10-19`, `auth-discovery-malformed-baseline-2026-10-19`, and `auth-submit-focus-baseline-2026-10-19`. Validation and scoped refresh/auth focus now passed four focused Chrome tests, including strict boolean availability, retained drafts and a routed OAuth-start failure with zero external requests. The inspected 390px capture is `docs/media/sign-in-discovery-unavailable-2026-10-19.png`, SHA-256 `04d44a2d`. No real OAuth login was attempted.
105105
- The existing public latest-release URL was checked: it resolves to v0.3.0 at `1abdf00`. Distribution notes now preserve that tag and request a new tag for the mission's newer main source. The earlier hardcoded release checkpoint was replaced by the live source-evidence workflow. No release or promotional post was created.
106106

107-
Complete focused UI, then freeze all source for the full 33-test browser suite and `npm run check`; commit/publish and inspect CI. Next assess a reversible publication-preparation command against the observed repeated manual-copy workflow and remaining release gaps. Keep the final 90-minute reserve from 14:16:17 UTC.
107+
- 10:47 UTC: account sign-in/discovery recovery committed locally as `7e56c2900753b93e8b1f811bdb97e7f7f8429fe5` after full 85/85 and Chrome 33/33 on frozen hash `0b8ac29021e0e1aad89f83b965fe5fb22748503da4694d33420efdf908ff5060`. Receipts: `runtime/verification/auth-recovery-{full,browser,evidence}-2026-10-19.json`. Normal push produced `617ac691c585e0c2562dc3b79d0d470c42feaf8a`, identical tree `db03106197ea4af66fb88202456de11c6cbf8a4c`. CI39239888882 passed all three jobs. Doctor confirmed the same live Windows workspace, healthy dependencies/build/Git, 74 GB free, offline ordinary gateway and unprobed model readiness.
108+
- Before publication automation, an actual inventory found 147 tracked paths outside v1's 272-file / 5.64 MB hash boundary. A source-only fixture changed CONTRIBUTING.md without changing its hash. The initial expanded index covered all 419 tracked paths / 9.92 MB and detected the change. Both five-sample batches are retained under `runtime/verification/source-index-{before,after}-2026-10-19.json`; broader coverage costs more time and no speedup is claimed. v2 additionally includes modes and rejects sparse/assume-unchanged states, links and forced tracked private/runtime inputs. Nine host/CLI tests and focused tooling 26/26 passed; the later receipt-version refinement passed 14 focused source/evidence tests. A first fixture-only missing-cache setup error was corrected; no application or retained data failure occurred.
109+
- `npm run source:inspect` now reports version/counts/bytes/hash stability without model calls or full-gate claims, using the existing validated workspace report directory. Full and browser receipts carry the source-index version; current preflight rejects missing/older versions. Ordinary archives keep a maintained source index without Git metadata. The separate publication-preparer remains deferred while this evidence dependency is qualified.
110+
- The parent confirmed public 617ac69/CI and can read normal task checkpoint messages. Continue in this same worker; no new release or tag is authorized. The final 14:16–15:46 UTC reserve remains intact.
111+
112+
Finish focused checks and a source inspection, then freeze all source for the 33-test browser suite and full 94-test Node gate; commit/publish and inspect CI. Next reproduce unexpected page-error containment before considering publication automation. Keep the final 90-minute reserve from 14:16:17 UTC.

‎docs/WORKFLOW-MEASUREMENTS.md‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,39 @@ or normal user database write was part of these measurements.
66

77
## Feedback loop
88

9+
### Source-index coverage and measured cost
10+
11+
At 10:47 UTC, an actual input inventory found 147 tracked paths outside v1's
12+
272-file / 5,637,895-byte index. These included root contribution/license/security
13+
and environment-template files, legacy prototype files and vendored references.
14+
A controlled ordinary source-only fixture changed `CONTRIBUTING.md` without
15+
changing the old hash. Receipt: `runtime/verification/source-index-before-2026-10-19.json`.
16+
No real configuration, runtime history or installed model was read or changed.
17+
18+
Decision: source index v2 includes ordinary tracked paths and Git modes alongside
19+
registered working inputs, with archive support and explicit rejected states.
20+
The initial expanded probe covered 419 files / 9,918,325 bytes with zero omitted
21+
tracked files; the same fixture's metadata change now changed its hash. Receipt:
22+
`runtime/verification/source-index-after-2026-10-19.json`.
23+
24+
| Five observed fingerprint calls, milliseconds | Values |
25+
| --- | --- |
26+
| Earlier index | 137, 83, 82, 81, 80 |
27+
| Initial expanded index | 786, 261, 234, 222, 270 |
28+
29+
Both batches used this Windows host and Node 24.11.1; raw commands and hashes are
30+
in the receipts. The input payloads and metadata work intentionally differ, the
31+
first call is cold, and host scheduling/cache effects remain. These observations
32+
measure the cost of broader evidence coverage and establish no speedup.
33+
The versioned current reproduction is `npm run source:inspect -- --samples 5`;
34+
its output reports the exact present file/byte counts and all timed samples.
35+
36+
Nine source-index/CLI tests exercise root and unregistered tracked input changes,
37+
mode changes, deletion across a real commit, archive operation, private-path and
38+
link refusal, sparse/hidden flags, ambient Git overrides and unchanged index bytes.
39+
They use disposable Git/file fixtures, never real credentials or retained stores.
40+
Inspection failure replaces an earlier inspection; it never counts as a full gate.
41+
942
### Browser temporary paths and readiness
1043

1144
Before the browser-runtime change, a read-only Node check returned

‎package.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"test:browser": "node scripts/browser-runtime.mjs test",
3131
"browser:doctor": "node scripts/browser-runtime.mjs doctor",
3232
"evidence:status": "node scripts/evidence-status.mjs",
33+
"source:inspect": "node scripts/source-inspect.mjs",
3334
"test:dom": "node --test tests/interface.dom.mjs",
3435
"test:serve": "node scripts/smoke-build.mjs",
3536
"test:services": "node --test tests/services.test.mjs",

‎scripts/browser-runtime.mjs‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { spawn } from "node:child_process";
22
import { lstat, mkdir, realpath, writeFile } from "node:fs/promises";
33
import { resolve } from "node:path";
44
import { fileURLToPath } from "node:url";
5-
import { fingerprint, inside } from "./project-files.mjs";
5+
import { fingerprint, inside, sourceIndexVersion } from "./project-files.mjs";
66

77
const projectRoot = fileURLToPath(new URL("../", import.meta.url));
88

@@ -81,10 +81,11 @@ async function doctor() {
8181
started = performance.now();
8282
await writeFile(
8383
output,
84-
JSON.stringify({ status: "running", startedAt }) + "\n",
84+
JSON.stringify({ status: "running", startedAt, sourceIndexVersion }) + "\n",
8585
);
8686
const report = {
8787
startedAt,
88+
sourceIndexVersion,
8889
status: "failed",
8990
browserLaunched: false,
9091
profileInsideWorkspace: false,

‎scripts/evidence-status.mjs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { readFile, realpath, writeFile } from "node:fs/promises";
33
import { relative, resolve } from "node:path";
44
import { fileURLToPath } from "node:url";
55
import { promisify } from "node:util";
6-
import { fingerprint, inside } from "./project-files.mjs";
6+
import { fingerprint, inside, sourceIndexVersion } from "./project-files.mjs";
77
import { verificationDirectory } from "./browser-runtime.mjs";
88
import { browserGroups, browserStats } from "./test-ui.mjs";
99
import { qualityPlan } from "./quality-plan.mjs";
@@ -18,6 +18,7 @@ function stamped(report, hash) {
1818
return (
1919
/^[a-f0-9]{64}$/.test(hash || "") &&
2020
report?.status === "passed" &&
21+
report.sourceIndexVersion === sourceIndexVersion &&
2122
report.stable === true &&
2223
report.sourceHash === hash &&
2324
report.finalSourceHash === hash &&

0 commit comments

Comments
 (0)