From 00b28999573c49259c31653f2cd66b75f19cdba0 Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Sat, 22 Aug 2026 01:18:39 +0200 Subject: [PATCH] docs(pm): record PR #52 merge evidence on pm-github-zqad --- .agents/pm/history/pm-github-zqad.jsonl | 2 ++ .agents/pm/issues/pm-github-zqad.toon | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.agents/pm/history/pm-github-zqad.jsonl b/.agents/pm/history/pm-github-zqad.jsonl index 4caef4b..7dd861c 100644 --- a/.agents/pm/history/pm-github-zqad.jsonl +++ b/.agents/pm/history/pm-github-zqad.jsonl @@ -1,2 +1,4 @@ {"ts":"2026-08-17T07:40:36.004Z","author":"codex","author_source":"configured","agent_harness":"codex","agent_instance":"839e601757a3957be5ebc227","agent_provenance":{"model":null,"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"create","patch":[{"op":"add","path":"/metadata/id","value":"pm-github-zqad"},{"op":"add","path":"/metadata/title","value":"Gate historical identities and host-path privacy across every Git object"},{"op":"add","path":"/metadata/description","value":"A full-object privacy read found zero high-confidence credential signatures and zero current tracked absolute host paths, but historical objects still contain 18 host-path lines and the commit graph includes one machine-local identity already tracked by the companion fleet issue. The repository is public and those commits are ancestors of releases, so destructive history rewriting requires an explicit maintainer decision; a forward gate is independently required."},{"op":"add","path":"/metadata/type","value":"Issue"},{"op":"add","path":"/metadata/status","value":"open"},{"op":"add","path":"/metadata/priority","value":1},{"op":"add","path":"/metadata/tags","value":["git-history","identity-gate","privacy","release","security"]},{"op":"add","path":"/metadata/created_at","value":"2026-08-17T07:40:36.004Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-08-17T07:40:36.004Z"},{"op":"add","path":"/metadata/author","value":"codex"},{"op":"add","path":"/metadata/estimated_minutes","value":480},{"op":"add","path":"/metadata/acceptance_criteria","value":"Add a checked-in justified identity allowlist and fail-closed audit covering reachable and unreachable commits and annotated tags; add a current-tree and all-object secret/private-path gate with false-positive fixtures; classify every existing historical match without printing sensitive values into logs; obtain an explicit human decision before rewriting published history; if approved, preserve release metadata and verify old sensitive objects are no longer remotely reachable; if declined, record the residual risk and enforce the forward gate; include the audits in release:check and CI with behavioral negative controls."},{"op":"add","path":"/metadata/severity","value":"high"},{"op":"add","path":"/metadata/repro_steps","value":"Run a high-confidence credential scan and local-host-path scan over git cat-file --batch-all-objects --batch, then enumerate unique author and committer identities across all reachable refs. Compare the result with current tracked files."},{"op":"add","path":"/metadata/expected_result","value":"Every reachable and unreachable commit/tag/blob is scanned; only explicitly justified identities are allowed; new credential or local-host-path material fails CI and release:check; every historical match is classified; any rewrite of published commits/tags occurs only after explicit maintainer approval and restoration planning."},{"op":"add","path":"/metadata/actual_result","value":"Current tracked files contain zero high-confidence secret or absolute-host-path matches. Full Git object scanning reports zero high-confidence secrets and 18 historical host-path lines. The repository lacks a checked-in identity allowlist and all-object identity/privacy gate."},{"op":"add","path":"/metadata/component","value":"release governance"},{"op":"add","path":"/metadata/regression","value":false},{"op":"add","path":"/metadata/dependencies","value":[{"id":"pm-github-1jez","kind":"related","created_at":"2026-08-17T07:40:36.004Z","author":"codex","source_kind":"cli:create:dep","author_source":"detected"}]},{"op":"add","path":"/metadata/docs","value":[{"path":"https://github.com/unbraind/pm-cli-companion/blob/main/.agents/pm/issues/pm-cli-website-kxtl.toon","scope":"global","note":"Fleet commit identity gate and human rewrite decision"}]}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"c62c98a28cc4cce6ab75bde695ceef37a18d49f48c3f0384997463b001198fa6","item_hash_version":2,"message":"Track the full-history privacy and identity gate discovered by the release audit"} {"ts":"2026-08-21T21:30:44.776Z","author":"ox-alpha","author_source":"asserted","agent_harness":"pi","agent_model":"stealth/ox-alpha","agent_model_source":"environment","agent_instance":"154a23dd8a71b7193a1b854c","agent_provenance":{"model":{"value":"stealth/ox-alpha","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-08-21T21:30:44.776Z"},{"op":"add","path":"/metadata/notes","value":[{"created_at":"2026-08-21T21:30:44.759Z","author":"ox-alpha","text":"Maintainer-approved rewrite executed 2026-08-21 (standing release-privacy directive; precedent pmc-t8tj). Disposable mirror rewritten with git-filter-repo: /home/steve -> $HOME across 15 host-path blobs (18 lines), codex@local -> 1153461+unbraind@users.noreply.github.com (1 commit, ancestor of main). Post-rewrite: 0 bad blobs, HEAD tree byte-identical (801689a), all heads/tags force-pushed, protection restored verbatim. Fresh-clone audit: reachable heads/tags fully clean. PR branch head ff6761e validated: build OK, 261/261 tests, pm health advisory-only. stefan@preu.at retained per maintainer decision 2026-07-21 (approved public authoring identity, see pm-rust allowlist); pi-agent@unbrained.dev classified as domain-based service identity for the forward allowlist. Remaining for closure: checked-in justified identity allowlist + fail-closed all-object audit + secret/host-path gate with false-positive fixtures and behavioral negative controls wired into release:check and CI."}]}],"before_hash":"c62c98a28cc4cce6ab75bde695ceef37a18d49f48c3f0384997463b001198fa6","after_hash":"f2bed5a4b3dab589fab33269340b423ab2e32db6a44d2efe757c1f1a3ac64862","item_hash_version":2} +{"ts":"2026-08-21T23:08:02.103Z","author":"harness:ox-alpha","author_source":"asserted","agent_harness":"pi","agent_model":"stealth/ox-alpha","agent_model_source":"environment","agent_instance":"76079ea2e6f06ddd989fb2c3","agent_provenance":{"model":{"value":"stealth/ox-alpha","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"add","path":"/metadata/notes/1","value":{"created_at":"2026-08-21T23:08:02.086Z","author":"harness:ox-alpha","text":"merged PR #52 as 50777d5d8fe5dc38b14227a845f4875ea0c222b6, all threads resolved, checks green, release workflow schedule-only (daily 03:23 UTC; next scheduled pickup)"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-08-21T23:08:02.103Z"}],"before_hash":"f2bed5a4b3dab589fab33269340b423ab2e32db6a44d2efe757c1f1a3ac64862","after_hash":"948e9d22f8c5ca709276ba24b74610d233c896ed06b1caab08f353abc446886b","item_hash_version":2} +{"ts":"2026-08-21T23:18:11.154Z","author":"harness:ox-alpha","author_source":"asserted","agent_harness":"pi","agent_model":"stealth/ox-alpha","agent_model_source":"environment","agent_instance":"3de2a912f640b06950c57d4d","agent_provenance":{"model":{"value":"stealth/ox-alpha","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"add","path":"/metadata/notes/2","value":{"created_at":"2026-08-21T23:18:11.129Z","author":"harness:ox-alpha","text":"PR #52 merged as 50777d5 on main: fail-closed Git identity/secret/host-path gate over all objects; both Greptile threads resolved; checks green; post-merge CI success (run 32535661556). Remaining: coordinated history-rewrite verification for already-published history before publication."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-08-21T23:18:11.154Z"}],"before_hash":"948e9d22f8c5ca709276ba24b74610d233c896ed06b1caab08f353abc446886b","after_hash":"8e106498b6c48edd9fb35fcc68618030b914674f1e88f284ef6c0927c86dac3a","item_hash_version":2} diff --git a/.agents/pm/issues/pm-github-zqad.toon b/.agents/pm/issues/pm-github-zqad.toon index 89fbaa3..9339a2c 100644 --- a/.agents/pm/issues/pm-github-zqad.toon +++ b/.agents/pm/issues/pm-github-zqad.toon @@ -6,7 +6,7 @@ status: open priority: 1 tags[5]: git-history,identity-gate,privacy,release,security created_at: "2026-08-17T07:40:36.004Z" -updated_at: "2026-08-21T21:30:44.776Z" +updated_at: "2026-08-21T23:18:11.154Z" author: codex estimated_minutes: 480 acceptance_criteria: "Add a checked-in justified identity allowlist and fail-closed audit covering reachable and unreachable commits and annotated tags; add a current-tree and all-object secret/private-path gate with false-positive fixtures; classify every existing historical match without printing sensitive values into logs; obtain an explicit human decision before rewriting published history; if approved, preserve release metadata and verify old sensitive objects are no longer remotely reachable; if declined, record the residual risk and enforce the forward gate; include the audits in release:check and CI with behavioral negative controls." @@ -18,8 +18,10 @@ component: release governance regression: false dependencies[1]{id,kind,created_at,author,source_kind,author_source}: pm-github-1jez,related,"2026-08-17T07:40:36.004Z",codex,"cli:create:dep",detected -notes[1]{created_at,author,text}: +notes[3]{created_at,author,text}: "2026-08-21T21:30:44.759Z",ox-alpha,"Maintainer-approved rewrite executed 2026-08-21 (standing release-privacy directive; precedent pmc-t8tj). Disposable mirror rewritten with git-filter-repo: /home/steve -> $HOME across 15 host-path blobs (18 lines), codex@local -> 1153461+unbraind@users.noreply.github.com (1 commit, ancestor of main). Post-rewrite: 0 bad blobs, HEAD tree byte-identical (801689a), all heads/tags force-pushed, protection restored verbatim. Fresh-clone audit: reachable heads/tags fully clean. PR branch head ff6761e validated: build OK, 261/261 tests, pm health advisory-only. stefan@preu.at retained per maintainer decision 2026-07-21 (approved public authoring identity, see pm-rust allowlist); pi-agent@unbrained.dev classified as domain-based service identity for the forward allowlist. Remaining for closure: checked-in justified identity allowlist + fail-closed all-object audit + secret/host-path gate with false-positive fixtures and behavioral negative controls wired into release:check and CI." + "2026-08-21T23:08:02.086Z","harness:ox-alpha","merged PR #52 as 50777d5d8fe5dc38b14227a845f4875ea0c222b6, all threads resolved, checks green, release workflow schedule-only (daily 03:23 UTC; next scheduled pickup)" + "2026-08-21T23:18:11.129Z","harness:ox-alpha","PR #52 merged as 50777d5 on main: fail-closed Git identity/secret/host-path gate over all objects; both Greptile threads resolved; checks green; post-merge CI success (run 32535661556). Remaining: coordinated history-rewrite verification for already-published history before publication." docs[1]{path,scope,note}: "https://github.com/unbraind/pm-cli-companion/blob/main/.agents/pm/issues/pm-cli-website-kxtl.toon",global,Fleet commit identity gate and human rewrite decision body: ""