Record beta.4 work in the roadmap and todo lists
The unreleased section gains bounded compaction, apply_patch, web_fetch, the worker subagent, and the tool-detail transcript; web_fetch leaves the roadmap's future list. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
co-authored by
Sisyphus
parent
0dc0819fad
commit
5c5caecd1a
+29
-8
@@ -105,15 +105,23 @@ same content is serialised inline instead of as an `item_reference`, so the depe
|
|||||||
pruned reasoning item disappears while the history survives. Compaction may shorten the
|
pruned reasoning item disappears while the history survives. Compaction may shorten the
|
||||||
history; it must not blank it.
|
history; it must not blank it.
|
||||||
|
|
||||||
|
**Bounded compaction.** The fixed three-message tool window collapsed long transcripts to a
|
||||||
|
handful of messages — a 405-message run kept two of 202 tool calls. Pruning now drops
|
||||||
|
reasoning first and keeps the widest recent tool tail that fits a ladder, and the SDK's
|
||||||
|
step-to-step message carry-over does the rest: the model keeps its record of what it ran. The
|
||||||
|
turn reports one compaction event rather than one per step.
|
||||||
|
|
||||||
**External registry.** `/registry` browses, searches, installs, and removes skills and plugins
|
**External registry.** `/registry` browses, searches, installs, and removes skills and plugins
|
||||||
from an index over https. The two kinds are treated differently on purpose: a skill is prompt
|
from an index over https. The two kinds are treated differently on purpose: a skill is prompt
|
||||||
text and is shown in full before it joins your system prompt, while a plugin is a validated
|
text and is shown in full before it joins your system prompt, while a plugin is a validated
|
||||||
manifest of deny rules that the compiled guard evaluates. Loading code from a URL is declined
|
manifest of deny rules that the compiled guard evaluates. Loading code from a URL is declined
|
||||||
outright — a plugin that can block tool calls could otherwise lie about blocking them.
|
outright — a plugin that could block tool calls could otherwise lie about blocking them.
|
||||||
|
|
||||||
**Interface.** Context shown as a percentage of the compaction threshold, amber from two
|
**Interface.** Context shown as a percentage of the compaction threshold, amber from two
|
||||||
thirds and red at 90, so a turn about to lose history says so first. Aligned command menu and
|
thirds and red at 90, so a turn about to lose history says so first. Aligned command menu and
|
||||||
registry tables, and `/skills` and `/plugins` name the origin of every entry.
|
registry tables, and `/skills` and `/plugins` name the origin of every entry. Tool calls show
|
||||||
|
their load-bearing arguments — the paths a batch read is about to pull in, the files a patch
|
||||||
|
touches — and each result line carries an outcome summary.
|
||||||
|
|
||||||
**Permission rules.** Approval moved from a list of tool names to rules matched against the
|
**Permission rules.** Approval moved from a list of tool names to rules matched against the
|
||||||
call's subject: the command for `bash`, the path for a file tool. `bash` used to be a single
|
call's subject: the command for `bash`, the path for a file tool. `bash` used to be a single
|
||||||
@@ -127,6 +135,22 @@ Surveyed Claude Code, Codex, opencode, and phi before writing it. Three of the f
|
|||||||
moved to per-pattern rules; the shape here is closest to opencode's, with the credential deny and
|
moved to per-pattern rules; the shape here is closest to opencode's, with the credential deny and
|
||||||
the repeat guard taken from it directly.
|
the repeat guard taken from it directly.
|
||||||
|
|
||||||
|
**`apply_patch`.** One atomic patch across files — add, update, move, delete — validated in
|
||||||
|
full before anything is written, so a failure on the fourth file leaves the first three
|
||||||
|
untouched. Permission rules match every path the patch touches, so denying `src/generated/*`
|
||||||
|
catches a patch that includes one among five files.
|
||||||
|
|
||||||
|
**`web_fetch`.** URL to markdown, size-capped, in a `net` tool set that is off unless asked
|
||||||
|
for — it is the one tool that leaves the machine. HTTPS is required for public hosts, private
|
||||||
|
and loopback addresses are refused, and redirects are re-checked one hop at a time so a public
|
||||||
|
URL cannot redirect into the cloud metadata endpoint.
|
||||||
|
|
||||||
|
**Writable worker subagents.** `task` gains a `worker` kind that holds the write tools and
|
||||||
|
routes every write and command through the parent's approval gate — the same rules, the same
|
||||||
|
prompt, the same session grants as a direct call. Without an approval channel the worker kind
|
||||||
|
is not offered at all rather than silently downgraded to read-only. `explore` and `review`
|
||||||
|
stay structurally read-only, and no subagent holds `web_fetch`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Next
|
## Next
|
||||||
@@ -178,12 +202,9 @@ decision, and there are no signatures. Publisher keys and a pinned digest per en
|
|||||||
|
|
||||||
### `web_fetch`
|
### `web_fetch`
|
||||||
|
|
||||||
URL to markdown, in a `net` set that is off by default — it is the one tool that leaves the
|
Shipped in beta.4 — see above. What remains declined: wrappers around a single bash line with
|
||||||
machine.
|
no added guarantee. `run_tests`, `typecheck`, `lint`, `build` are five tools of pure schema tax
|
||||||
|
when the real commands are already in `AGENTS.md`.
|
||||||
Declined: wrappers around a single bash line with no added guarantee. `run_tests`,
|
|
||||||
`typecheck`, `lint`, `build` are five tools of pure schema tax when the real commands are
|
|
||||||
already in `AGENTS.md`.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -75,12 +75,6 @@ command, with `$ARGUMENTS`, `$1`, `` !`cmd` `` for shell output, and `@path` for
|
|||||||
- [ ] `` !`cmd` `` substituted before the prompt is sent, with the guard applied to it
|
- [ ] `` !`cmd` `` substituted before the prompt is sent, with the guard applied to it
|
||||||
- [ ] Test: a command with a shell substitution reaches the model with the output inlined
|
- [ ] Test: a command with a shell substitution reaches the model with the output inlined
|
||||||
|
|
||||||
### `web_fetch`
|
|
||||||
|
|
||||||
- [ ] URL to markdown, size-capped
|
|
||||||
- [ ] Belongs to a `net` set, off by default — it is the one tool that leaves the machine
|
|
||||||
- [ ] Test: a redirect is followed, an oversized body is truncated with a note
|
|
||||||
|
|
||||||
### Derive the tool-name lists
|
### Derive the tool-name lists
|
||||||
|
|
||||||
`TOOL_SETS` and `MUTATING_TOOLS` both list names by hand. A tool added to one and forgotten
|
`TOOL_SETS` and `MUTATING_TOOLS` both list names by hand. A tool added to one and forgotten
|
||||||
@@ -185,3 +179,5 @@ Kept for one release, then deleted.
|
|||||||
Rules match the call's subject, `always` grants a pattern rather than the tool, `.env` and
|
Rules match the call's subject, `always` grants a pattern rather than the tool, `.env` and
|
||||||
`.pem` are refused on read, and an identical call repeated three times in a turn asks even
|
`.pem` are refused on read, and an identical call repeated three times in a turn asks even
|
||||||
when allowed
|
when allowed
|
||||||
|
- [x] **`web_fetch`**, size-capped HTTP(S) to markdown in the opt-in `net` tool set, with
|
||||||
|
redirect and private-address checks
|
||||||
|
|||||||
Reference in New Issue
Block a user