scrum2 cleanup: JSON-marshal in stringifyValue, drop dead detectCycle, name SourceWorkflow

5 small fixes from the §3.8 scrum2 review wave:

- workflow.stringifyValue now JSON-marshals maps/slices instead of
  fmt.Sprint %v (Opus+Kimi convergent: LLM modes were getting Go's
  map[k:v] syntax, which is unparseable as JSON context).
- workflow.detectCycle removed — duplicate of topoSort that discarded
  the useful node ID. Validate() now calls topoSort directly and
  returns its wrapped ErrCycle.
- observer.SourceWorkflow named constant — was an implicit string
  cast (observer.Source("workflow")) at the cmd/observerd handler.
- Unused context imports + dead silencer comments removed across
  workflow/modes.go and observerd/main.go.
- Unused store parameter dropped from registerBuiltinModes (reserved
  comment removed; can be re-added when a mode actually needs it).

just verify still PASS — these are pure cleanup, no behavior change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
root
2026-04-29 23:16:07 -05:00
co-authored by Claude Opus 4.7
parent c41698acae
commit 8278eb9a87
5 changed files with 29 additions and 37 deletions
+9 -4
View File
@@ -32,10 +32,15 @@ import (
type Source string
const (
SourceMCP Source = "mcp"
SourceScenario Source = "scenario"
SourceLangfuse Source = "langfuse"
SourceOverseerCorrection Source = "overseer_correction"
SourceMCP Source = "mcp"
SourceScenario Source = "scenario"
SourceLangfuse Source = "langfuse"
SourceOverseerCorrection Source = "overseer_correction"
// SourceWorkflow tags ObservedOps emitted by the workflow runner
// (one per node execution). Added 2026-04-29 scrum2 (Opus BLOCK):
// the workflow handler was casting a string literal to Source,
// which worked coincidentally but left the taxonomy implicit.
SourceWorkflow Source = "workflow"
)
// ObservedOp is one entry in the observer's ring buffer (and JSONL