Skip to content

chore(squad): EM state update β€” run 9 (2026-03-31)#94

Closed
jpleva91 wants to merge 1 commit intomainfrom
chore/em-state-run-9
Closed

chore(squad): EM state update β€” run 9 (2026-03-31)#94
jpleva91 wants to merge 1 commit intomainfrom
chore/em-state-run-9

Conversation

@jpleva91
Copy link
Copy Markdown
Contributor

Sprint Status β€” Run 9

Previous sprint goal: Test coverage baseline + P2 bug sweep
Status: βœ… PR #89 merged β€” 25 tests, closes #68 + #66

Current sprint goal: P2 bug sweep + dogfood readiness
Status: πŸ”΅ Active

What changed since run 8

Human action required

πŸ€– Generated with Claude Code

Recovered broken worktree (incomplete WIP #51 fix left build broken).
Stashed WIP, fixed #51 properly in PR #93 (log run() errors).
PR #89 merged β€” 25 tests, closes #68 + #66.
Issue #92 (Preflight/Goose) triaged P2.
PR budget 2/3. Sprint: P2 bug sweep (#52, #65) + dogfood readiness.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jpleva91 added a commit that referenced this pull request Mar 31, 2026
Closed stale PR #91 (DIRTY merge conflict, superseded by #94).
Fixed #65 (scheduler WriteFile error). PR budget 3/3 β€” queue at limit.
Human review of #93 and #94 (both CI green) needed to unblock.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jpleva91 jpleva91 closed this Mar 31, 2026
jpleva91 added a commit that referenced this pull request Mar 31, 2026
closes #52

- filepath.Glob does not support ** recursive patterns in Go; goEntries was
  always nil (0 files) because the pattern looked for a literal dir named "**"
- Replace with filepath.WalkDir to collect .go files recursively under internal/
- Add io/fs import required by WalkDir callback signature
- EM state run 11: closed stale PR #94, P2 bug sweep 3/3 fixes now in open PRs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jpleva91 added a commit that referenced this pull request Apr 1, 2026
closes #52 (#96)

* fix(cmdScan): replace filepath.Glob ** with WalkDir + EM state run 11 β€” closes #52

- filepath.Glob does not support ** recursive patterns in Go; goEntries was
  always nil (0 files) because the pattern looked for a literal dir named "**"
- Replace with filepath.WalkDir to collect .go files recursively under internal/
- Add io/fs import required by WalkDir callback signature
- EM state run 11: closed stale PR #94, P2 bug sweep 3/3 fixes now in open PRs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore(squad): update blockers.md for run 11

* feat(shellforge): add LLM provider interface + Ollama implementation

Provider interface abstracts LLM backends (Ollama, Anthropic).
OllamaProvider wraps existing ollama.Chat(). Agent loop accepts
optional Provider in LoopConfig β€” nil falls back to legacy path.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(shellforge): add Anthropic API provider with native tool-use

Implements llm.Provider for Anthropic Messages API using stdlib HTTP.
Handles tool_use content blocks, tool_result responses, system prompt
extraction, and token tracking. Tests use httptest mock server.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(shellforge): wire native tool-use into agent loop for Anthropic

When Provider returns structured ToolCalls, handle them directly:
normalize β†’ governance β†’ execute β†’ tool_result feedback. Bypasses
text-based intent parsing. Uses []llm.Message internally when
Provider is set. Ollama/legacy path unchanged.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(shellforge): add --provider flag for Anthropic API backend

shellforge agent --provider anthropic 'prompt' runs the agent loop
against the Anthropic Messages API with native tool-use. Defaults
to Ollama for backwards compatibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(shellforge): serialize tool_use blocks in assistant messages

When Anthropic responds with tool_use blocks, the assistant message
in conversation history must include structured tool_use content β€”
not just plain text. Added ToolCalls field to llm.Message and
reconstruct tool_use blocks in convertMessages().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(shellforge): add extended thinking budget control

ThinkingBudget field on AnthropicProvider caps thinking tokens per
call. Prevents runaway output spend on complex tasks. CLI flag:
--thinking-budget <tokens>. Thinking content blocks silently consumed
in response parsing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(shellforge): add drift detection to agent loop

Every 5 tool calls, asks the model to self-score alignment with
original task (1-10). Below 7 β†’ steering message injected. Below 5
twice β†’ task killed. Prevents agents from burning tokens on
off-task work. 8 drift tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant