Repository navigation
Conversation
…s own gate A Chat page, behind the `harness` experiment, talks to an agent login Personal Agent Proxy runs itself. It has grants and an activity log like any agent, and every call it makes goes through the same MCP tool dispatch as Claude's, for the conversation's task. The model is Claude Sonnet 5.5 over OpenRouter. Everything lives in the database: a thread per conversation, an append-only log of entries (the person, the model with its tool calls, each call's result), and a job per unit of work, inference on a log or one tool call. A worker in each api instance claims jobs with a lease and finishes them in the same transaction as what they write, fenced by the lease, so an instance that dies mid-job loses nothing: the next worker picks the job up. A write that was interrupted is never made again; the model is told its outcome is unknown. One tool beyond the connections, sleep_until, is a job due later. The web app gets a second sidebar beside the icon rail for the conversations, and a page mode that scrolls a part of itself so the header, sidebars and input stay put.
Message and Bubble for the turns, a Message Scroller that anchors the person's newest message and follows the reply, Trace lines for the agent's calls that open to their details, and an Input Group for the message field, added to the ui package with the shadcn CLI.
…y the person A thread is a persona now: a name and an avatar, one of four shapes in one of eight colors, made and changed in a dialog from the "+ New" row and the conversation's header. The sidebar lists them with the last thing said in each, as a chat app does. The migration for the threads, never deployed, is rewritten in place with the three columns. The login, the grants and the system prompt stay the same for every persona.
… summary in place of what it covers Once a request to the model has passed a size, the next inference first asks the model for a summary of the log before the person's last two turns, written as a summary entry with how far it reaches. The model reads the last summary, then what came since, with the tool results of the kept turns before the current one cleared. The page shows the conversation as before: the summaries are the model's, not the person's. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…h a conversation per member Main made organizations of people, with connections and agents a member's own or shared, and everything under the organization's slug. The built-in agents follow: each is an agent shared with every member, named and given a face on the Chat page, where anyone makes one and whoever made it or the organization's owner changes or deletes it. A member's conversation with an agent is theirs alone, as a direct message: in it the agent acts as them, reaching the shared connections and their own, both vaults included, and its task and activity are theirs. Leaving an organization takes a member's conversations with it. The chat routes move under the organization, the migration becomes v032 with the face on the agent and the member on the thread, and the Agents page shows the built-in agents as shared, without a login to set up. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This branch has not been deployed
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.
Work in progress: a first cut of an agent Personal Agent Proxy runs itself, to get a feel for the harness design before building further on it.
A Chat page, behind the
harnessexperiment, talks to a built-in agent login. It has grants and an activity log like any agent, and every call it makes goes through the same MCP tool dispatch as Claude's, for the conversation's task. The model is Claude Sonnet 5.5 over OpenRouter.Everything lives in the database: a thread per conversation, an append-only log of entries, and a job per unit of work (inference on a log, or one tool call). A worker in each api instance claims jobs with a lease and finishes them in the same transaction as what they write, so an instance that dies mid-job loses nothing: the next worker picks the job up, and an interrupted write is never made twice. One tool beyond the connections,
sleep_until, is a job due later.The page is built on shadcn's chat pieces (Message, Bubble, Message Scroller, Trace, Input Group), added to the ui package with the shadcn CLI. Threads are shown as personas: a name and an avatar (four shapes, eight colors), listed in a second sidebar with the last thing said in each. The login, the grants and the system prompt are the same for every persona for now.
Still to do before this leaves the experiment: compaction for long-lived conversations, an "ask" grant state with approvals, event triggers, and markdown rendering of replies.
Open workspace in Conductor