Repository navigation
Conversation
POST /api/preferences recorded every write in preferences/edits.md as `· you`. /distill treats `· you` lines as the owner's: never reworded, never removed, deletions never re-added. But agents write through this endpoint too. On 2026-09-20 an agent rewrote the whole global preferences page via the API; the ledger called it `· you`, so the agent's wording became permanently protected and later refreshes stayed strictly additive. The POST now takes an optional `source` — "you" or "agent", anything else is a 400 and the page is untouched — defaulting to "agent". The dashboard editor sends source:"you"; it is the only hand-edit path. The distill skill defines `· agent` entries as revisable like `· distill` lines, never the owner's. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
POST /api/preferencesrecords every write inpreferences/edits.mdas· you. The distill skill treats· youlines as the owner's: never reworded, never removed, and anything the owner deleted is never re-added. But agents write through this endpoint too (acurlfrom a session).Observed on 2026-09-20: an agent rewrote the entire global preferences page via the API at the owner's loose request. The ledger labelled it
· you, so the agent's wording became permanently protected and every later refresh stayed strictly additive — including an unconditional "put handoff files in ~/Downloads" rule that then applied in every session on the machine.What
source:"you"or"agent". Anything else is a 400 and the page is not written. The default isagent.source:"you"; it is the only hand-edit path.assets/skills/distill/SKILL.md:· agententries are agent writes, revisable like· distilllines, never the owner's. The· yourules are unchanged.How verified
TestPreferencesEditSourceLabel: default →· agent; editor →· you; unknown source → 400 with the page untouched. Failed before the change (everything· you, unknown source accepted), passes after.TestPreferencesEditLedgerupdated to send the editor'ssource(it models the dashboard editor).make testis green, including the dashboard node regression scripts.🤖 Generated with Claude Code