-
Notifications
You must be signed in to change notification settings - Fork 0
feat(overseer): disposition write-path keystone (Stage 0→1) + query_dispositions #102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: feat/overseer-open-loops
Are you sure you want to change the base?
Changes from all commits
67f7ffe
3b6873b
b15b1ed
ed4f30c
57310aa
276b69a
b18370b
13cd9bd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -122,7 +122,9 @@ export async function runOverseerConverse(params: { | |
| continue | ||
| } | ||
| try { | ||
| const result = runOverseerTool(overseer, name, args) | ||
| // The conversational surface is the operator-directed write-path, so dispositions | ||
| // are allowed here (gated off on the raw HTTP tool-dispatch endpoint). | ||
| const result = runOverseerTool(overseer, name, args, true) | ||
|
heavygee marked this conversation as resolved.
Comment on lines
+125
to
+127
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When the model emits multiple tool calls in one assistant message, this loop executes every call before returning any result to the model. For an operator request such as “dismiss the PR-flood one,” the model can emit Useful? React with 👍 / 👎. |
||
| toolTrace.push({ tool: name, args, ok: true }) | ||
|
heavygee marked this conversation as resolved.
|
||
| // The brain opts into 'full' per call when it needs depth; default lean. | ||
| const detail = args.detail === 'full' ? 'full' : 'lean' | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On authenticated
/overseer/converserequests, this enables writes against the single globalOverseerEntitywithout passing or checkingc.get('namespace'). Because its inbox queries are global as well, an operator authenticated to namespace A can discover an item belonging to namespace B and haverecord_dispositionmutate it by ID. Thread the authenticated namespace into the entity/tool call and reject items whose related session is outside it.AGENTS.md reference: AGENTS.md:L149-L149
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deferred to epic #107 (namespace scoping for Overseer inbox/disposition writes). Not in scope for this PR per operator triage.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deferred to #107 (namespace substrate epic). Not blocking single-tenant dogfood.