agency: auto-default --spawn-topic by thread context#107
Merged
MagMueller merged 1 commit intomainfrom May 8, 2026
Merged
Conversation
Magnus's rule: if I'm already deep in one topic (sub-agent posting a
follow-up card inside a worker thread) Yes/Edit should run in-place;
if I'm in a multi-suggestion context (the main agency feed, a fresh
chat, the /agency loop) Yes/Edit should fork a new topic per card.
Encoded as code, not just docs, so the LLM agent doesn't have to
remember:
agency_db.is_worker_topic(thread_id) — True iff the thread was
spawned as worker_topic for some other suggestion. Excludes
in-place bookkeeping (cards whose own tg_thread_id == the
worker_topic_id).
agency-report:
--spawn-topic → force spawn (existing flag, now explicit override)
--no-spawn-topic → force in-place (new flag)
neither → auto-detect via is_worker_topic
The mutually-exclusive group + store_const trick keeps the auto path
distinguishable (args.spawn_topic is None) from explicit on/off.
Default-button labels and the deep-link glue (#106) keep working —
they read args.spawn_topic which is now the resolved value.
Skill + docstring updated to document the auto-default and when to
override.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
MagMueller
added a commit
that referenced
this pull request
May 9, 2026
The kind=refine flow used to write the original card's title + description + prompt to /var/lib/bux/agency-refine-context/<thread>.txt on Edit-tap, then `run_task` would read + delete that file on the user's first reply to seed the worker agent with the original context. Two redundant surfaces — the data was always already in the suggestion row (title, description, prompt). The file was a duplicate-state cache that needed its own ownership/permissions handling on /var/lib/bux. Replaces with a DB lookup: agency_db.pop_refine_context_for_thread(db, thread_id) -> str | None Atomic SELECT + UPDATE: returns the assembled context AND flips a new `refine_context_injected` column from 0 → 1 in one call. So the context is injected exactly once, on the user's first reply in the worker topic. Subsequent replies in the same thread are normal lane runs. Schema migration via ALTER TABLE with duplicate-column swallow, mirroring how spawn_topic was added in #107. Pre-existing rows get refine_context_injected = 0 by default. `run_task` swaps the file pop for the DB call. The kind=refine handler stops calling `_agency_write_refine_context` (the function + its sibling `_agency_pop_refine_context` + the `_AGENCY_REFINE_CTX_DIR` constant + `_agency_build_refine_context_plain` are removed — agency_db owns the plain-text assembly now). The visible HTML context message in the new topic still renders via `_agency_build_refine_context`, just with the new "📎 Context" emoji + title (from #111). Net: one fewer state surface, one fewer ownership/permissions race, the same UX for the user (Edit → context shown → "what would you change?" → user replies → agent re-drafts with original in scope). Co-authored-by: bux <bux@browser-use.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Auto-default the spawn-topic flag based on where `agency-report` is invoked from. Magnus's exact rule, encoded as code (not just guidance) so the agent doesn't have to remember.
Rule
Implementation
Test plan
Summary by cubic
Auto-defaults
--spawn-topicinagency-reportbased on thread context. Posts inside an existing worker topic run in-place by default; posts from other threads spawn a new topic.agency_db.is_worker_topic(thread_id)to detect worker topics (excludes in-place bookkeeping).--spawn-topic(force spawn),--no-spawn-topic(force in-place), or no flag (auto-detect).args.spawn_topic.Written for commit c7a0d6b. Summary will update on new commits.