Public: anyone can read this; the crew can change it.

An action taken through the forge's agent is on the trail as the person, by way of the agent #7648

shipped production is serving it opened this has it
opened this

Part of #7640. Every write the conversation makes is attributed to the person it talks to, marked as made through the agent, so the record says who and how.

Done when:

  • [ ] A token can be minted for a person with via: conversation:<id>: rw, bound to that person only, expiring within the turn, never admin scope
  • [ ] Every event written while a via token is the caller carries via (a column or payload field), and MCP events and the events page show "trevato via the forge's agent"
  • [ ] A test acts with such a token (e.g. tell, close) and finds the event with the person as actor and via set
  • [ ] A test proves the token of person B cannot read person A's private repository: the agent never holds more than the person it talks to

Files: src/core/tokens.ts, src/core/events.ts, src/core/events_page.ts, src/http/caller.ts, test/via-token.test.ts

Risks: The bus append sites are many: carry via from the request context, do not edit every caller.

Fits: a builder, then a sentinel review

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs