| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-09-06 | 4.2 kB | |
| v0.4.3 source code.tar.gz | 2026-09-06 | 11.1 MB | |
| v0.4.3 source code.zip | 2026-09-06 | 11.6 MB | |
| Totals: 3 Items | 22.7 MB | 0 | |
A campaign can now ask you for what only you can provide, and continue from where it stopped.
Added
The inbox. When an implementation session hits something no engineering removes — an API key that is not in .env, access to a private bucket, a file that exists only on your machine — it proves the blocker, files a request through a new request_from_user tool, and the campaign pauses: stopped_reason: waiting_for_user, the session's working tree committed and pushed to its branch, the checkpoint marking the node suspended, kapso watch showing WAITING ON YOU. Nothing polls and nothing runs in the background. You read the requests with kapso inbox and answer with kapso inbox reply <id> "note"; the reply resumes the campaign in your terminal and continues the very session that asked, through the coding agent's own resume (claude -p --resume, codex exec resume), so its context is intact. The session verifies for itself; a wrong value draws a second request that quotes your previous reply; "not available" is an instruction, and no later session asks for that key again. Replies are notes, never values: a credential goes where the request's fix row says, and a reply shaped like a token is refused unless you add --yes.
kapso inbox [CAMPAIGN]andkapso inbox reply [CAMPAIGN] [ID] [NOTE]; outside a campaign directory,kapso inboxlists every campaign waiting on you through a registry file.- Config block
inboxunderdefaults:enabled(true; the benchmark modes ship it off),stop_grace_seconds(120),registry. A mode withnode_expansion_valueabove 1 runs with the inbox off. - Python:
solution.requests,Kapso.inbox(campaign),Kapso.inbox_ideas(campaign),Kapso.reply(campaign, id, note); a campaign started with aniteration_evaluatorcallback is resumed from your script withresume=True. - Ideation is told not to design around a gap only a person can fill; the implementation prompt gets the same rule, plus: prove the blocker before asking, ask for everything in one call, never print a secret's value, and a credential location the repository's own docs name is not a "search".
- A file you drop into the campaign's
kapso_datasets/after launch now reaches the next session; before, only files committed at setup did.
Verified live on both CLIs (Claude Code 2.1.260, Codex 0.144.1): stop and resume, the grace kill and a kill with no grace at all, two needs answered in two replies, a wrong value drawing a second request, a deleted transcript failing loud, Kapso killed mid-continuation and resumed. A bait suite of twelve traps (keys under other names, loadable .env files, config files, missing packages, typos, transient rate limits, optional integrations, and four real blockers) ran once per fixture per CLI: no false request on sound fixtures with the shipped prompts, every real blocker asked for on Claude and 4 of 5 on Codex. Findings and rows: docs/plans/evolve-inbox-findings.md.
Fixed
- Codex implementation lanes crashed before the session started when the mode set no
implementation_timeoutand the campaign had no time budget (TypeError: float() argument … NoneType); pre-existing since the codex lane shipped, never hit because every benchmark sets the timeout. None now means the adapter's default deadline. - A failed Claude CLI exit reported no reason; the last stderr lines now ride in the error.
- The campaign repository ignores its own inbox and launch records, as it already ignored the checkpoint.
Documentation
- New page: the inbox, linked from the Evolve overview, execution flow, MCP gates, coding agents, orchestrator, quickstart and landing pages; the CLI, configuration and API references cover the new surface.
- The docs are now built for coding agents as well as people: a docs MCP server and Markdown endpoints, a project line and inline related links on every page, a
context7.json, and a GEO check in CI that fails a page opening with a heading, lacking an internal link, or using a banned word.
Full changelog: https://github.com/Leeroo-AI/kapso/compare/v0.4.2...v0.4.3