Name a quick-propose session for its project, not its id - #172
Merged
Merged
Conversation
A quick propose launched under `voro-propose-<project_id>` while the planning session beside it, on the same project, was named `voro-plan-<project>`. In `claude agents` the two read as different kinds of thing, and the bare number was the one shape a Voro-composed session name otherwise reserves for a task id. `Launch::Propose` now carries the project's name, sanitised as `Launch::Plan` sanitises it, so `n` on the `voro` project opens `voro-propose-voro` and stamps its prompt and log files `propose-voro`. The two task-less launches share one convention; nothing else about the quick propose moves.
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.
A quick propose (
n) launched its headless agent undervoro-propose-<project_id>, while the interactive planning session beside it (N), on the same project, was namedvoro-plan-<project>. Inclaude agentsthe two read as different kinds of thing, and the bare number was the one shape a Voro-composed session name otherwise reserves for a task id.Launch::Proposenow carries the project's name, sanitised through the samesanitize_for_namethePlanarms use, so a quick propose on thevoroproject isvoro-propose-vorowith slugpropose-voro, andodm 2reduces tovoro-propose-odm-2exactly as a planning session's does.dispatch::propose()builds the launch from the project it already loads; theproject_idparameter stays, since it is what the caller has and whatdefault_reponeeds. The variant's doc comment, which used to argue that the id served becauseproposealready occupied the position a bare number would be read in, now says whatPlan's says: a task-less launch names its project by name, and the two share one convention.Nothing else about the quick propose moves — it still runs the
dispatchverb, opens no session row, moves no state, and still refuses an agent whosedispatchtemplate carries{task_id}.Docs updated in the same change, per CLAUDE.md: DESIGN.md §8's
{session_name}paragraph now states the invariant over both task-less launches rather than planning alone; docs/agent-integration.md's{session_name}bullet lists the propose form beside the others, keeping the "bare number is always a task id" justification that now covers it; the embeddedvoro.tomlstarter comment gained the form; CHANGELOG.md has a### Changedentry.Tests:
a_quick_propose_names_its_project_and_has_no_taskrewritten against a project name (voro-propose-mote/propose-mote, still no task id, still distinct from a dispatch's name); the plan sanitising test extended to cover both variants and renameda_task_less_launch_sanitizes_its_project_name; and a newdispatch::tests::propose_names_its_session_for_the_projectproves end-to-end, through a stub agent that echoes{session_name}to a marker, that a project namedodm 2spawnsvoro-propose-odm-2and stamps its prompt filepropose-odm-2-*.Verified:
cargo test --workspace(859 tests, 0 failed),cargo clippy --workspace --all-targets -- -D warningsclean,cargo fmt --all --checkclean, andrg 'voro-propose|propose-\{?project_id'shows no stale text.