Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .agents/pm/history/pm-github-zqad.jsonl
Original file line number Diff line number Diff line change
@@ -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}
6 changes: 4 additions & 2 deletions .agents/pm/issues/pm-github-zqad.toon
Original file line number Diff line number Diff line change
Expand Up @@ -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."
Expand All @@ -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: ""