rdmsm4x-changelog-20260829-0314-agent-state-github-sprawl
Agent-state documentation and GitHub backup-sprawl containment
Contained automatic GitHub repository creation, verified the six-Mac Git/GitHub transport contract, and committed the complete private agent-state/backup/rollback analysis in isolated ECS0 and Dataroo branches without changing either live site or any repository visibility/history.
Scope
- Writing host:
rdmsm4x. - Read-only fleet audit:
rdmsm4x,rdmbair13m5,rdmbair15m5,rdmpw3265m,rdmpw3275m, andjdmbair13m5. - Configuration mutation:
rdmsm4xscheduled GitHub backup control plane only. - Documentation mutation: isolated ECS0 and Dataroo worktrees only; dirty canonical main worktrees were not edited.
- External GitHub state: read-only inventory/validation only. No repository create/delete/archive, transfer, visibility change, push, force push, or history rewrite was performed by this task.
Exact files and state changed
Backup control plane
/Users/richh/dev/fleet/ops/backup/github_backup_dev.zsh- v1.5 defaults to fail-closed registration.
- Unattended runs require an exact pre-existing local
backupremote and an existing GitHub repository. - Missing registrations, missing GitHub repositories, and mismatched remotes are skipped.
- New registration requires
--create-missingplus one exact relative path. - Automatic
remote set-urlbehavior was removed. concepts/icloud-cleanupis quarantined by exact relative path before remote inspection/push.- After SHA-256:
f750bf7542d37217fb0ea62419a544d36bab995d0247802cebc3f77cbe580f70.
/Users/richh/Library/LaunchAgents/com.eastcoastscience.devbackup.plist- File contents were not changed.
- Job was temporarily booted out during the script edit and bootstrapped again after validation.
- SHA-256 remains
4d8a37c06a2a6f37ecfa239d1087cedab8f8d569a0eb8745e89f9f3f9de5d5df.
- Exact pre-change rollback copies:
/Users/richh/dev/_ops/backup/config-backups/agent-state-github-sprawl-20260829/github_backup_dev.zsh.before/Users/richh/dev/_ops/backup/config-backups/agent-state-github-sprawl-20260829/com.eastcoastscience.devbackup.plist.before
- Synthetic integration evidence is retained under
/Users/richh/Documents/Codex/2026-08-29/hel/work/github-backup-integration.R1GMlW.
ECS0 local capture
- Worktree:
/Users/richh/dev/_worktrees/dev-ecs0-net/codex-agent-state-checkpoints-20260829. - Branch:
codex/agent-state-checkpoints-20260829. - Commit:
34354abd8edce1edd21a0c4bc36637fad650560d. - Added/updated:
docs/agent-state-github-backups-and-rollback.mdwiki/guides/agent-state-github-backups/index.htmltests/test_agent_state_github_backups_page.pydocs/publication/agent-state-github-backups-20260829.mdconfig/native-wiki-paths.txtSESSION-STATE.md
- Markdown SHA-256:
225cbcb67a72839db41226f5733b2c603af47406eaade1be8481f6d11e74c352. - HTML SHA-256:
affba2a36410516a40d9d90e150ebe638e55862c426dc6109845c63b9f0ab7aa. - Status after commit: clean isolated worktree; not pushed, integrated, synced, or deployed.
Dataroo local capture
- Worktree:
/Users/richh/dev/_worktrees/dev-dataroo-net/codex-agent-state-checkpoints-20260829. - Branch:
codex/agent-state-checkpoints-20260829. - Commit:
4b092b96b1f13666974749b54ecd8cc199fb17fe. - Added/updated:
docs/agent-state-github-backups-and-rollback.mddocs/agent-state-github-backups-and-rollback.htmltests/test_agent_state_github_backups_document.pyREADME.md
- Markdown is byte-identical to the ECS0 source.
- Dataroo HTML SHA-256:
425cce5e219fbda963e970a50ba6af6552944415382a41701a88fe0b3d536de9. - Status after commit: clean isolated worktree; not pushed, integrated, published, or deployed.
Coordination and durable status
/Users/richh/.agent-coordination/checkins/codex-rdmsm4x-agent-state-github-sprawl-20260829.json/Users/richh/dev/todo/items/20260828-fleet-backup-republishes-known-exposed-credential.md- Status changed to
contained-remediation-open; rotation and history cleanup remain open.
- Status changed to
/Users/richh/dev/fleet/ISSUES.md- Item now distinguishes containment from unresolved remediation.
/Users/richh/Library/Mobile Documents/com~apple~CloudDocs/Codex/projects/AGENTS.md principles/PROJECTS.md- Added the bounded “Agent State Recovery and GitHub Backup Containment” milestone.
- SHA-256 after update:
3827886deb93d85f54d3b11aafa7ced818a1fa42be80cdfab2177292864e6b7c.
Commands and operations run
- Resolved the executing host with
scutil --get ComputerNameand synchronized fleet check-ins. - Inspected the LaunchAgent with
plutilandlaunchctl print; verified the backup process was idle. - Used
launchctl bootoutbefore editing andlaunchctl bootstraponly after validation. - Validated the backup script with
zsh -n, help/invalid-argument checks, an actual GitHub no-create negative test, an exact quarantine test, a registered-repository dry run, and a full estate dry run. - Queried the GitHub inventory with
gh repo listwithout displaying any token. - Audited each Mac through its pinned SSH identity for ComputerName,
public host-key fingerprint, Git version,
.gitconfigchecksum, GitHub CLI version/protocol, and authentication status. - Created isolated worktrees with
git worktree add; rendered self-contained HTML with Pandoc; ran focused and full Pythonunittestsuites; served each page over loopback-only Python HTTP; verified HTTP 200, byte-exact bodies, title/noindex/brand markers, and privacy patterns. - Committed only explicitly listed files on each isolated branch.
Verification evidence
- GitHub inventory: 282 total, 282 private, zero non-private, two
archived, 144 with the automatic
rdmsm4x-dev-prefix. - Git fleet: the previously accepted twelve-key Git contract remains checksum-exact on 6/6 hosts.
- GitHub transport: GitHub CLI 2.98.0 and HTTPS on 6/6 hosts.
- Authentication:
rdmsm4xandrdmpw3275mauthenticated asrichhdoty; the other four report not authenticated and require their own owner browser login. - Public SSH host-key fingerprints matched the fleet registry on 6/6 hosts.
- Backup full dry run: 76 registered eligible repositories, one unregistered repository, one remote mismatch, two security quarantines, zero implicit create markers.
- Synthetic no-create integration: an exact registered local remote targeting a nonexistent GitHub repository remained nonexistent after the unattended path.
- ECS0 focused tests: 6/6 pass.
- Dataroo focused tests: 4/4 pass.
- Dataroo full suite: 38/38 pass.
- ECS0 full suite: 67 run, 60 pass, three expected runtime skips, four
failures; the unmodified
e8cc50ebase runs 61 tests with the same four failures and three skips, proving six added passes and zero new failures. - Both loopback pages: HTTP 200, byte-exact response body, expected title, noindex directive, and correct site brand.
- Privacy scans: no private absolute path, credential-shaped token, Access cookie, secret-store path, or external asset dependency in either published document.
Rollback
- Temporarily unload
com.eastcoastscience.devbackup. - Restore the exact
github_backup_dev.zsh.beforefile from the rollback directory, preserving its mode, then verify its SHA-256 is6c65df710fe40d18460dae9483dbe33a9958cac27096b91987f7734564972208. - Restore the saved plist only if its checksum differs from the unchanged value recorded above.
- Validate with
zsh -nandplutil -lint, then bootstrap the saved plist. - To undo documentation staging, remove only the two isolated worktrees/branches after confirming the commits are no longer needed. Neither canonical main worktree needs restoration because it was not edited.
- To undo the project-index/todo/issue annotations, remove only the exact additive 2026-08-29 paragraphs; preserve any later concurrent entries.
Restoring v1.4 would intentionally re-enable automatic GitHub repository creation and remove the credential-history quarantine. Do so only if Rich explicitly chooses that risk.
Outstanding owner actions
- Run the interactive HTTPS browser login on
rdmbair13m5,rdmbair15m5,rdmpw3265m, andjdmbair13m5; never copy credentials from another Mac. - Rotate the known exposed third-party credential, then scope and approve cleanup of both existing GitHub histories. Containment alone does not remediate them.
- Decide whether/when the two documentation branches should be integrated or privately published.
- Reconcile the 144 backup-prefixed repositories by provenance before any archive/delete action.
- If desired, approve a local-only Entire pilot on one low-sensitivity private repository; Entire was researched but not installed or enabled.
Secrets and external-state declaration
No secret value was printed or written. No token, Keychain entry,
cookie, auth file, task/session database, or live .git
directory was copied between hosts. No purchase, subscription change,
Git LFS activation, public launch, or provider/authentication policy
change occurred.