Skip to content

Releases: Walid-Idrissi-Labs/Canopy

v0.2.0-beta.1

Choose a tag to compare

@github-actions github-actions released this 28 Sep 19:57
a0981ca

Changelog

Features

  • b92ee60 feat(acp): serve Canopy to editors over the Agent Client Protocol
  • b2ba9cf feat(agent): notice when an agent is going in circles
  • 98f20ac feat(agents): agent definitions as files, dispatched by name
  • dc19d92 feat(agents): dispatched agents sit under their orchestrator, with their branch
  • 1c1c63b feat(agents): tool calls in panes carry their kind labels
  • be65cf4 feat(anthropic): adaptive thinking, one cache breakpoint at the newest block, and paused turns
  • 159178f feat(anthropic): hold many MCP tools back behind a tool search
  • f411acd feat(attach): the interface opens on a conversation canopy serve runs
  • fff5578 feat(bench): canopy bench measures pass rate and cost on real tasks
  • 6ef07d5 feat(budget): spending caps hold inside a turn, and can be set
  • a1cca37 feat(chat): !command runs in the project and its output goes with the next message
  • db855d2 feat(chat): /grants lists what a conversation may do without asking, and takes it back
  • 9e9ad88 feat(chat): @ file mentions, ctrl+x ctrl+e for your editor, # notes
  • 5bc77b2 feat(chat): a command palette on ctrl+p
  • 26528ea feat(chat): agents and conversations in the command palette
  • 988a483 feat(chat): enter carries out a finished plan in build mode
  • 5c609ed feat(chat): every conversation of this project is reachable from the palette
  • 56596b9 feat(chat): find in the conversation on ctrl+f, copy the last reply on ctrl+y
  • 306fed9 feat(chat): spending caps in the header, and a pause that says how to go on
  • 2706170 feat(chat): up and down move through a draft, alt+k kills to the end, a long paste shows its size
  • 83b48f5 feat(cli): canopy run, the full agent without the interface
  • 7fa0793 feat(dispatch): agents share their orchestrator's cached prefix and report back
  • cddad60 feat(dispatch): an agent's report carries the verifier's verdict on its work
  • 1f932ae feat(engine): replay the conversation exactly and keep its prefix frozen
  • 76c9b2c feat(exec): bound how many test runs execute at once
  • 3688dc5 feat(hooks): hooks run in the sandbox
  • a1d6e31 feat(hooks): pre-tool, post-tool and turn-end hooks, given JSON on stdin
  • 475296c feat(instructions): send AGENTS.md, CLAUDE.md and project instructions
  • 6f8732e feat(keys): a stored key is checked at once, and a price can be entered
  • 839e9df feat(land): merge an agent's branch only if the merged result passes
  • 52ed4e9 feat(lsp): a language server checks every file an agent edits
  • 71a4c21 feat(lsp): find_definition and find_references from the language server
  • 1fa9aa1 feat(mcp): remote servers over Streamable HTTP
  • d4390a8 feat(openai): the Responses API for OpenAI's own endpoint, opt-in
  • 1057ee7 feat(permission): outside content taints a conversation (D-57)
  • 772aa4e feat(review): ask a model for an opinion of the ranked attempts
  • b818d76 feat(run): verify with the project's tests and escalate effort on red
  • f0f1cd7 feat(sandbox): Seatbelt and Landlock confinement policies
  • 8ca2d9d feat(sandbox): a new worktree's setup and local MCP servers run confined
  • 9af8241 feat(sandbox): confine agent shell commands with Seatbelt and Landlock
  • 7a59b31 feat(sandbox): narrow a command's network to package registries (D-60)
  • 8657ac8 feat(sandbox): the project's tests run in the sandbox too (D-61)
  • c84ffdd feat(search): Anthropic's web search on Anthropic keys, and notices reach the screen
  • 84253b9 feat(serve): keep agents working after their client leaves
  • 6bc3c89 feat(session): compact when a conversation outgrows the window
  • 34d3ba1 feat(session): measure the context by the last request and compact past a budget
  • 8cf9a6f feat(session): what a compaction replaces is carried again
  • 7678b3f feat(skills): load Agent Skills with their bodies on demand
  • 7ab9da6 feat(theme): ship six palettes as data, load your own, gate raw colours
  • be39824 feat(tools): keep long command output out of the conversation
  • 952999b feat(tools): read less at the source
  • 42b0f38 feat(tools): repo_map, an outline of the repository ranked by use
  • 249bc41 feat(tui): /context shows where the next request's tokens go
  • 28aa575 feat(tui): /mouse hands the mouse back to the terminal, and takes it again
  • f0b1127 feat(tui): a footer under each finished turn with its tokens, cache share and cost
  • 8cee462 feat(tui): demo images drawn from the golden screen fixtures
  • aa04c95 feat(tui): desktop notifications, a live window title and tab progress
  • c0c008b feat(tui): draw a finished turn in the order it happened
  • 2faa0ed feat(tui): each agent pane carries its receipt on its border
  • 86d7697 feat(tui): highlight code blocks with a real lexer
  • bd291e9 feat(tui): move to Bubble Tea v2 and Lip Gloss v2 (V-01)
  • 70f923b feat(tui): take steering back, stop and remove agents where they are seen
  • 28e8566 feat(undo): show what an undo would change before doing it
  • a019c57 feat(windows): it builds, and stopping a command ends everything it started
  • 591e380 feat(worktrees): keep agent worktrees in Canopy's data directory and reclaim them
  • 60dd6a7 feat: a failed turn is tried again with enter, and says what to fix when it cannot be
  • da5f2c8 feat: canopy doctor, canopy init, and keys import for the first run
  • 680ece2 feat: pictures in a message, scaled and sent to the model
  • 6dc9a6f feat: what Canopy says while starting is shown inside the interface

Bug fixes

  • d532c34 fix(acp): questions follow their conversation, and serve stops cleanly
  • ab6f159 fix(acp): stop on a signal with stdin open, withdraw moved questions
  • 4abd6d9 fix(agent): a changing workspace resets the no-progress count
  • dc576c6 fix(agents): a definition's tools list caps its agents' trust
  • af8a233 fix(agents): s stops an agent waiting on a question, and taken-back guidance keeps its lines
  • 3479ffa fix(anthropic): never replay a thinking block without a signature
  • 9b13aaf fix(attach): a conversation is sent from its first unfinished turn, trimmed
  • 6386c88 fix(attach): a record that changed under the kept turns is sent whole
  • 68a878d fix(bench): Python's bytecode is not a test the attempt added
  • 457369c fix(bench): a pass needs the task's own tests seen passing
  • b96e290 fix(bench): a test file the attempt added fails it too
  • 5fec76e fix(bench): attempt in build mode and refuse a pass made by editing tests
  • a21573b fix(budget): the overall cap counts turns still running
  • 5a3ee82 fix(chat): a ! command is typed and confirmed, and its output cannot forge its frame
  • 2790e1a fix(chat): a note is one typed line, confirmed, and never blesses another edit
  • 5c6e1cd fix(chat): a question takes the keyboard back from the palette
  • 3b9e643 fix(chat): a search answer is matched to its words, not only its generation
  • 81b2e34 fix(chat): anything that happens between the two enters asks for the second again
  • bb681fe fix(chat): find gives way to a question and matches without changing case
  • d45086d fix(chat): only a plan with steps is offered, and carrying it out takes two enters
  • 394e22c fix(chat): say when pictu...
Read more

v0.1.0-beta.2

Choose a tag to compare

@github-actions github-actions released this 25 Sep 00:30
1dcf1e2

Changelog

Features

  • 01bc86a feat(acp): reach Claude by driving the Claude Code you already signed in to
  • d99d0df feat(cli): sign a subscription in, sign it out, and say what a test can check
  • b87753a feat(codex): reach ChatGPT by driving OpenAI's own Codex app server
  • 64f04c6 feat(copilot): run a turn on the user's own GitHub Copilot subscription
  • 7b959c2 feat(keys): a Claude credential that is a delegation rather than a secret
  • dc9a266 feat(keys): a credential can be one somebody signed in to
  • 26c2070 feat(keys): renew a sign-in before the request, not after the 401
  • 9ce03b6 feat(trust): run nothing a repository configures until it is trusted
  • 33ba0f0 feat(tui): a wizard branch that reaches a credential with nothing to paste

Bug fixes

  • a00ab33 fix(acp): a delegated turn names no model, because it is not Canopy's to name
  • 14ebe4f fix(codex): make the route id the route, and the account an identity
  • b165186 fix(codex): say CODEX_HOME in the caveat, which is what the code reads
  • f64311a fix(delegated): reap the vendor's process through the thing that guards its pid
  • 7669535 fix(delegated): refuse untrusted vendor settings and stop orphaning vendor agents
  • f9c99eb fix(exec): keep credentials out of every child process environment
  • f8804fb fix(gitsafe): neutralise only the filters a repository defines
  • f7658b2 fix(keys): SetModel wrote back a copy of the file from before the last write
  • f237c51 fix(keys): keep the Claude route building on its own commit
  • e0bbb78 fix(keys): let a sign-in route answer only about its own credentials
  • 3d76bd5 fix(pricing): price Opus 5.5 and Fable 5.1, and stop billing OpenAI cache twice
  • a099595 fix(release): let the current release be the current release
  • 0a4528a fix(session): make the history database owner-only
  • bc0fdc7 fix(subscription): make a vendor client something the cleanup can always reach
  • 4c8869d fix(tools): keep file tools out of .git and stop git running repo config
  • 07a082c fix(tools): refuse fetches that resolve to this machine or a private network
  • 948feb1 fix(tui): escape model text and vendor sign-in links before they reach the terminal
  • b8bff55 fix(tui): hold one event subscription instead of one per event
  • a5264fe fix: close the bypasses found in review of the hotfixes
  • c39a81b fix: harden delegated subscription routes
  • a09fa73 fix: make credential renames recoverable
  • 92d9ccd fix: report stale inline approval outcomes
  • 2980074 fix: report stale inline approval outcomes

Other changes

  • 61a29ad ci(release): warn rather than refuse when the Copilot app id is unset
  • 96d88fa docs(install): stop calling signout the end of a grant it does not touch
  • 70c623d docs(limitations): fix the claims that were true of one route and stated of three
  • b74a174 docs(limitations): say that eviction seeds a conversation too, not only a restart
  • f856f35 docs(readme): name the ground the ChatGPT route actually rests on
  • 3dc7441 docs(security): describe the two signout messages the build actually prints
  • c0ad49c docs(security): scope the expiry and the read-only sandbox to what has them
  • ead6bf3 docs(tasks): S-01 to review, with the storage argument written down
  • 722ac0e docs(tasks): S-02 to review, with the margin and the two failures argued
  • 210a30d docs(tasks): S-03 back to review, with the resource story argued from the tests
  • 3f6ccd9 docs(tasks): S-03 to review, with the session-versus-request argument written down
  • feaaf17 docs(tasks): S-04 to review, and say plainly whose gate a delegated turn runs under
  • 813b754 docs(tasks): S-05 to review, with the fallback argued rather than built
  • 497d245 docs(tasks): S-06 and S-07 to review, with the boundary caveat written down
  • 535cb46 docs(tasks): note where the second provider fork actually lives now
  • 920e324 docs(tasks): record what the live run against a real Claude Code caught
  • 3acc991 docs(tasks): record what verifying phase S found, and block the two it could not support
  • 1ea28f0 docs(tasks): reflow the S-03 notes to the width the file uses
  • d512327 docs(tasks): return S-08 to review with the second pass written down
  • 634d5cd keys: a credential can be renamed, and everything on it follows
  • fb1698d keys: keep the rename note inside sixty columns
  • 59fb540 ledger: U-26 moved to its own branch
  • c26f726 merge: integrate credential and picker UX
  • ec1c65f merge: stack header layout after inline approvals
  • 03bbe28 merge: stack model and credential UX after header layout
  • 27d77bc refactor(codex): drop the login mode accessor too, which was the fourth
  • 1b47a1f refactor(codex): drop the three exported methods nothing reaches
  • ffaa610 style: check writes in the trust prompt
  • 9b4307a test(codex): hold the handshake, the refusals and the machines with nothing on them
  • 11fc874 test(copilot): hold the sign-in, the session and the two switches that reach them
  • 8aec0e8 test(subscription): hold four guarantees that were only held by their comments
  • 6f44b3b tui: a question is answered where it is seen
  • 7086b2d tui: a question is answered where it is seen
  • 18f6a90 tui: the model picker stands where the message box stands
  • 63f7084 tui: the name lives in the header corner, not in the middle of a new chat

v0.1.0-beta.1

Choose a tag to compare

@github-actions github-actions released this 30 Jul 12:00
9ac9dbc

Changelog

Features

  • 99c55ce feat(chat): let navigation read a permission prompt without answering it
  • b19d696 feat(chat): make ctrl+r offer a compaction before it pays for one
  • b1899ec feat(tui): carry who needs you into every header and stop locking screens
  • 3d93cf8 feat: /model, for the conversation rather than the key
  • 46fbb60 feat: a key is one credential and many models
  • 87358d9 feat: a question asked on the side is worth keeping
  • 80009db feat: a reply that reads like a document, not like its source
  • 3cf2f2d feat: an agent stuck on a question finds you where you are
  • 5a90d76 feat: an edit you can read, not a filename and a duration
  • fa204df feat: the corner says who you are with, not what we are called
  • e8444dd feat: the task list becomes a block you can read across the room
  • 6b09d4a feat: two sonnet agents, with no key called sonnet

Bug fixes

  • b0747ab fix(catalog): advertise only compatible OpenAI models
  • 766b4fa fix(keys): a credential you just typed is the one that answers
  • 1671279 fix(keys): open on a conversation when several credentials are stored
  • 340adfb fix(keys): report credential selection truthfully
  • eece6d3 fix(lint): drop the three helpers the inline rewrite orphaned
  • 18eb361 fix(lint): highlight the fragment once rather than assigning it twice
  • 58e7023 fix(tui): apply the mode the key stops on, not the ones it passes
  • 7723752 fix(tui): keep markdown tables within terminal width
  • 3d909ee fix(tui): key transcript cache by tool classification
  • 0e44719 fix(tui): neutralize terminal controls in tool output
  • 38ba5c5 fix(tui): preserve pending mode across every exit
  • 03224fb fix(tui): scope approval input to its conversation
  • 5d06887 fix(tui): scope approval input to its conversation
  • 5f230b6 fix: a column is not a rune, and a frame is not a suggestion
  • 87e9ded fix: a focus you cannot see cannot exist
  • 9b0010e fix: a key can be asked for the model it already runs
  • 3e7a588 fix: a refused model change moves nothing, and the picker takes a typed one
  • f04a428 fix: a stale catalog says so, and two spellings are one model
  • f260f24 fix: the renderer could stop returning, and did so on ordinary output

Performance

  • 8a32c98 perf: render a finished turn once

Other changes

  • f24aeb1 Merge remote-tracking branch 'origin/fix/cell-width-and-chrome' into repair/transcript-cache-classification
  • e5e495c Merge remote-tracking branch 'origin/main' into feat/one-key-many-models
  • 2161915 Merge remote-tracking branch 'origin/main' into release/beta-1
  • 8e124df Merge remote-tracking branch 'origin/main' into repair/cell-width-integration
  • 234775d Merge remote-tracking branch 'origin/main' into repair/tool-output-controls
  • a86747e Merge remote-tracking branch 'origin/main' into tui/ambient-attention
  • 96e2c62 Merge remote-tracking branch 'origin/perf/render-once-per-turn' into repair/credential-selection-truth
  • 318f724 Merge remote-tracking branch 'origin/tui/what-the-agent-did' into repair/markdown-table-width
  • bb99d94 merge: main's one exit path, with the picker on it
  • 30c2ac9 merge: take the branch below, which resolved main the same way
  • 4de4b9f merge: the same assertion, finished on both branches
  • 734af64 test(tui): account for Update results

v0.1.0-alpha.3

v0.1.0-alpha.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Jul 22:33
c02647f

Changelog

Features

  • e98aae9 feat: a bigger fire, and the name unframed with its edges picked out
  • df60c54 feat: a header bar that stays, with what you actually want at a glance
  • 792b5fd feat: a jump-to-bottom marker sitting on top of the message box
  • 632e7fc feat: a pane is the conversation screen in miniature
  • 9d28d95 feat: actually connect the configured MCP servers
  • 44fb0db feat: actually run the hooks a project configures
  • fe573be feat: add project commands and cost outcomes
  • f7bf0fc feat: add the canopy report command
  • 308520a feat: btw gets a panel of its own
  • f3f8210 feat: drag to select the conversation, and only the conversation
  • ccaa5d9 feat: draw the name at the size it deserves, and keep it on screen
  • 81273d5 feat: errors keep the provider's own words
  • a81db87 feat: every agent on screen at once, each pane wearing its own fire
  • 0422975 feat: label a tool call by what it is, and frame the question
  • 4846596 feat: one drawing of the name at a time, and a fire that goes out
  • 86e4b78 feat: queued steering shows itself
  • df4c789 feat: the name casts a shadow, and the fire smokes
  • 487b80b feat: the name edged in grey, a taller fire, and the rough edges of the shell filed off
  • 54172f0 feat: the questions that create agents stop whispering

Bug fixes

  • abb4cda fix(verification): harden freshness attribution
  • 3625398 fix: agree on what makes two workspace directories the same
  • 0b75d0c fix: align confined mode with its trust ceiling
  • ba643c2 fix: bound the tool list out loud, and stop what a server started
  • f606962 fix: build the report from one consistent view of the worktree
  • 86f46b3 fix: close MCP hardening review gaps
  • c6bedd3 fix: close the hook in-flight loop
  • d582257 fix: confirm direct agent workspace
  • 7f92c11 fix: dispatch runs the profile the user meant, and a spawned agent cannot spawn
  • c87ef93 fix: enforce permission and workspace contracts
  • 1e0aef9 fix: hold a conversation until its checks have finished
  • 985120a fix: implement D-05, so a missing program is not a failing test
  • 64e26b8 fix: keep a conversation's mode across a fork and a restart
  • 8f3e5f9 fix: keep a shared workspace out of the review queue too
  • 81c5330 fix: make the green gate actually wait for the tests
  • a6ae8d7 fix: never signal a process group after its leader is reaped
  • 7d2b273 fix: preserve the test command contract
  • a43a841 fix: prove the review queue guard, and correct two ledger claims
  • 6fe310f fix: quiet the linter on the selection tests
  • cc7a0de fix: read the gate's mode through the resolver
  • be6ad47 fix: refuse an ambiguous external call, and stop overclaiming two tasks
  • 4b0f1e5 fix: refuse to pick a conversation up in another project
  • f6cd808 fix: scope a remote approval to the exact call, and show it
  • 108307f fix: scope an approval for a remote tool to its arguments
  • caaf251 fix: stop a committing hook from firing on its own commit
  • 16c0147 fix: stop a report's own values writing into the report
  • 1468b7b fix: stop idle TUI animation churn
  • f826d43 fix: sweep the engine for the six robustness properties
  • b95a0e0 fix: tell a server's own requests apart from its replies
  • 03633ca fix: the configured trust level is a ceiling, not a default

Other changes

  • ba721b9 Merge remote-tracking branch 'origin/main' into codex-fix-fix-mode-trust-ceiling
  • 357074e Merge remote-tracking branch 'origin/main' into codex-fix-hooks-loop-guard
  • 0530e17 Merge remote-tracking branch 'origin/main' into codex-fix-release-0.1
  • b36f3bb Merge remote-tracking branch 'origin/main' into feat/commands-and-cost
  • 2e49510 Merge remote-tracking branch 'origin/main' into feat/interface-polish
  • 595a769 Merge remote-tracking branch 'origin/main' into feat/modes-and-commands
  • 2e6a252 a run report that cannot overstate what was checked
  • 2ac7c25 a tent instead of a mushroom cloud, and the brand colours
  • 2a6f3c6 claim A8-06 and A8-05
  • c1e2f80 close the agents footer conditional the merge left open
  • cdbca5c compose the screen a conversation opens on
  • 8c76435 declare the config fields both branches need, and clear three stale notes
  • d55f6f5 do not offer runway where no test is configured
  • 7c76878 drop the em dash from the command list
  • 3c415f3 drop the two bare colours nothing needs any more
  • b02df0a fifteen commands, and let the mode change mid reply
  • ca32b9c fire a code hook once per revision, not once per state
  • df9eaa9 forbid constructing a colour outside the theme package
  • 5e9981b four modes on the key, and the smoke in the accent grey
  • 67c618a give the campfire the secondary brand colour
  • 0b38aac give the mark a campsite, and drop the symmetry rule it broke
  • 26782c2 keep A8-05 out of this branch's claim
  • f60bda1 make the theme actually reach the screens that ignored it
  • 4fc273d merge: bring main into the mosaic view
  • 04c0340 merge: combine freshness and review follow-ups
  • 67eb8d3 never build a revision key out of half a git status
  • 8faa9b1 open on a conversation, not on a launch screen
  • 0cae049 open the conversation you were given, not session-1
  • 624e4e8 pick a theme from the terminal, redraw the welcome, and build the frames
  • bc65c52 pin the mode prompt to the wire, and record what is left of M-09
  • 7fa18c5 print a code on the way out, and pick the conversation up with it
  • 16a181b record A8-05 in the ledger
  • 8d7038b record A8-08 in the ledger
  • 5cc2568 record M-08 in the ledger
  • bb49264 record the gate and the aside in M-09
  • a514d14 record the interface work, and the part of it that has to wait
  • c2f2bdf record the mode ladder as M-09
  • f8d5b98 record the mode ladder as M-09
  • a4a012b rerun the three permission findings, and fix what the fixes left behind
  • da89f9a run something when a state actually changes
  • b36bdc7 say which mode and which model in the message box
  • 75ff09a ship commands by default, and a list that drops out of the box
  • 4146315 speak MCP, and refuse to let a server grade its own homework
  • 5008b11 style: drop an em dash from the cost outcome header
  • 4e945b3 the credential screen was ignoring the theme too
  • 4e3ecc3 the green gate, and a question that changes nothing

v0.1.0-alpha.2

v0.1.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Jul 12:19
c469d10

Changelog

Other changes

  • 0d146c0 follow what an agent is doing, and stop showing worktrees that do not exist
  • fb523fc give the wheel to the conversation and the arrow keys to the message box
  • 34bd2ba input history, a new conversation key, and a logo worth keeping
  • 5b619de mark prereleases as prereleases, and say how to install in the readme
  • b099978 plan the phase that makes the pre-alpha usable
  • edfc799 write down when the next release goes out

v0.1.0-alpha.1

v0.1.0-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Jul 10:15
3b24f3d

Changelog

Features

  • 8a12c02 feat(cmd): add canopy ask
  • fd0d654 feat(cmd): add the headless harness
  • 592d6e6 feat(core): add domain types and the closed state vocabulary
  • 3ca218f feat(core): add provider, key and profile types
  • 9ce309e feat(core): add the fake store with four scripted worktrees
  • 702c893 feat(core): add the five engine interfaces
  • a12c2e3 feat(core): add the provider contract
  • 0284b6a feat(core): add the workspace roll-up
  • 2bbe933 feat(core): derive visible test and service state from evidence
  • ad5e555 feat(keys): store credentials in the OS keychain
  • b154733 feat(provider): add the Anthropic client
  • 618c86f feat(tui): add the dashboard
  • 2155d28 feat(tui): full screen application shell
  • 4131179 feat(tui): manage credentials from the interface

Bug fixes

  • e56be96 fix(ci): pin golangci-lint and fix the findings it was hiding

Other changes

  • 889e65a a second theme, a help screen, and a config for this project
  • 78f0105 add a web fetch tool
  • c31cb93 add openai compatible provider
  • ee0c1ba add plan first mode
  • eb08e1e add provider fallback chains
  • fb7a1dc add session and turn types to core
  • 6396ca2 add session forking
  • 1240662 add structured git tools
  • defbd68 add the agent registry
  • c805abb add the agents view
  • b1ed98c add the context meter and compaction
  • 3c1e698 add the permission model and audit trail
  • 41a57be add the session engine
  • 573e894 add the shell tool and command runner
  • 2a83944 add the tool contract and the file tools
  • 1fc2132 add the tool use loop and give the app real tools
  • 4da4243 add worktree discovery and lifecycle
  • 9d14846 ask before running a command
  • 01c9e92 bring a fresh worktree to a runnable state
  • b1063cb cache the stable parts of a prompt
  • ac08d1a checkpoint the worktree before every turn
  • 3ed8fe8 commit an agent's work, and see where two of them collide
  • d1ff486 finish the overnight write up
  • f5dc3d7 fix a race between the stall guard test and its own callback
  • c6112f3 fix two bugs that made the interface unusable
  • aa47e48 give agents a task list, wire dispatch in, and record what got done
  • 17290c6 give an agent a worktree of its own when it asks for one
  • 6cc7767 give the live tests a realistic time budget
  • cad743f give up on a provider that goes silent
  • 6b9bc36 hash worktree content instead of guessing at it
  • 987b648 let a rate be attached to a stored credential
  • 4bd0af2 list the model flag in the keys usage text
  • 1a0e103 make chat the home screen
  • 7c347db note why the stall guard test went out red
  • a53410b only count settled turns in the session cost
  • ca4a595 open and create agents from the agents view
  • 019f14a persist sessions to sqlite
  • 621c537 price turns from a dated table
  • d6ac0e2 put the verification engine on screen and give it something to run
  • 41b91e3 rank agents on evidence, and refuse to when there is none
  • 8a7b1dc record A5-04 and A5-11, and correct four stale statuses
  • 1377d74 report a cancelled turn as stopped, not failed
  • a84694b run the configured tests and measure what an agent changed
  • cc8a18f say which model each credential talks to in the listing
  • b1278ce set up the homebrew tap and write down how a release happens
  • d58c7ad steer an agent without stopping it, dispatch from the chat, and cap the spend
  • bec46ac use the stored model, and ask for a credential when none is chosen
  • e83e332 write up the overnight work for review