feat: companies, hire, Muninn gates, Slack hallway - #165
Open
scrypster wants to merge 4 commits into
Open
Conversation
…eric LLM filler
- wait_for_threads with empty thread_ids now includes uncollected terminal threads
(done/cancelled/error with CollectedAt.IsZero()) that finished before wait was
called, preventing the race where fast specialists are lost with "No matching
threads" error. Returns them as Completed immediately.
- Strip generic LLM filler phrases ("How can I assist you further?", "Not
currently delegating…") from speech after tools, same as playbook glue and
echoed fragments, keeping teammate prose intact.
- Tests: TestWaitForThreads_UncollectedFinished reproduces and verifies the race;
TestStripResidualSpeechAfterTools_RemovesFillerLines verifies phrase stripping.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Empty wait (and invented <thread-id> waits) collect uncollected finished specialists. After tools, strip playbook fences, stage directions, future-wait glue, glued echoes, and leftover ticks. Speech-only turn after a specialist result tells the lead to relay, and delegate_to_agent refuses the caller. Live S5 on qwen2.5-coder:14b: "Reggie said PONG. 7 times 8 is 56."
Checkpoint of the local harden2 stack: company isolation, grant-gated create_agent, harness Muninn persist, leftover-speech strip, threads, capability deny, session queue.
Collapse persist "I'll wait for the task to complete" playbook around a fresh LocalClock stamp to teammate clock speech.
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.
Summary
Checkpoint of the local harden2 stack that was live as v0.4.0-local-harden2. Not a claim that Fable QA is closed.
create_agent/ hirenew_requestmid-turn)This is a working-tree checkpoint onto
fix/wait-uncollected-doneafter #163 (wait-uncollected / residual speech) already landed on develop.Known Fable SNAPs still open — reviewers should not treat this PR as fixing them:
Test plan
go test ./internal/spaces/ ./internal/server/ ./internal/tools/ ./internal/agent/ ./internal/backend/ ./internal/threadmgr/(companies, hire, leftover speech, threads)create_agentis grant-gated; capability deny for image / no-delegate on TierLow.tmp-*/FABLE-QA-2026-08-27.mdas part of this change (left untracked)