memory backpass: pick memory repo and traces from the host public/private role #286
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/tools#286
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Serve each machine's backpass from its own memory repo: a public host reads the public traces and opens its pull request on the public memory repo, a private host reads the private traces and opens it on the private memory repo, and
--publicon a private host adds a public pass whose result is relayed instead of pushed.Primary goals:
allod memory backpassworks out whether it is on a public or private host and targets the memory repo that host actually owns.memory-backpass: <date>pull request on the public memory repo.--publicon a private host — additionally reads the public traces and commits the public-memory side to a public worktree, exposed for relay withallod patchrather than pushed.Current state and specifics
allod memory backpassalways treats the private memory as the write target and the public memory as a read-only index whose edits are relayed.--publicresolves toallod/memory(cmd/allod/memory_backpass_resolve.go:152);--privateresolves to the registry entry marked"memory": trueother thanallod/memory, else~/work/agent-memory(cmd/allod/memory_backpass_resolve.go:106); the driver always opens its PR from the private worktree and relays public edits from a second, unpushed worktree (cmd/allod/memory_backpass_write.go:255). The skill states the same contract — “proposes one small human-reviewed update to private memory as a pull request” (skills/memory-backpass/SKILL.md:9) — and the synthesis prompt hardcodes the private worktree and forbids editing the public checkout (skills/memory-backpass/synthesis-prompt.md:2,6).On a public host with no private-memory credential the resolution picks a local
agent-memorycopy and the write run dies at step 1's relay check:forge pr list -s closedruns in a checkout with no remote and returnsforge: not in a git repo and --repo not specified. Even with a remote the token has novnprc/*scope. Witness onallod-dev:git ls-remote ssh://git@forge.anarch.diy:2222/vnprc/agent-memory.gitreportsnot authorized to read, andforge pr list -R vnprc/agent-memoryreturns HTTP 404, whileallod/memoryis readable and pushable.Pointing
--publicand--privateat the same repo is not a workaround: the run then emits every bullet and every open ledger line twice in both prompts, once asPUB-and once asPRV-, which corrupts the fold.Scope
In scope: role detection, the public-host write target, the
--publicflag on a private host, and the relay path for the public pass. The synthesis prompt must edit whichever repo the run owns and relay the other only when--publicrequests it.Out of scope: the quote check, the two-session floor, the five-edit ceiling, the byte caps, the ledger format, and the traces layout. The model seat and the timer schedule are separate work.