# Graph Report - ratatoskr (2026-06-15) ## Corpus Check - 61 files · ~157,407 words - Verdict: corpus is large enough that graph structure adds value. ## Summary - 2045 nodes · 4675 edges · 152 communities (124 shown, 28 thin omitted) - Extraction: 66% EXTRACTED · 34% INFERRED · 0% AMBIGUOUS · INFERRED: 1582 edges (avg confidence: 0.52) - Token cost: 0 input · 0 output ## Graph Freshness - Built from commit: `335c8358` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). ## Community Hubs (Navigation) - [[_COMMUNITY_TuiPresenterState Management|TuiPresenterState Management]] - [[_COMMUNITY_EventSource SSE Consumer|EventSource SSE Consumer]] - [[_COMMUNITY_Parsed CLI Arguments Handling|Parsed CLI Arguments Handling]] - [[_COMMUNITY_Agent Information Management|Agent Information Management]] - [[_COMMUNITY_TUI Tests and Contract Verification|TUI Tests and Contract Verification]] - [[_COMMUNITY_CLI Arguments Parsing Contract|CLI Arguments Parsing Contract]] - [[_COMMUNITY_Sync Entry Point and Session Resolution|Sync Entry Point and Session Resolution]] - [[_COMMUNITY_Stream Turn Rendering and Cancellation|Stream Turn Rendering and Cancellation]] - [[_COMMUNITY_Worldtree Session Client|Worldtree Session Client]] - [[_COMMUNITY_Tier 3 Agent Lifecycle Client|Tier 3 Agent Lifecycle Client]] - [[_COMMUNITY_CLI Presenter State Management|CLI Presenter State Management]] - [[_COMMUNITY_Ratatoskr Application Argument Handling|Ratatoskr Application Argument Handling]] - [[_COMMUNITY_Stream Turn Event Processing|Stream Turn Event Processing]] - [[_COMMUNITY_Local Tier 3 Agent Index Management|Local Tier 3 Agent Index Management]] - [[_COMMUNITY_Ratatoskr Application Core|Ratatoskr Application Core]] - [[_COMMUNITY_Async Main Orchestrator|Async Main Orchestrator]] - [[_COMMUNITY_Contract Parsing and Function Extraction|Contract Parsing and Function Extraction]] - [[_COMMUNITY_Behavioral Guidelines Documentation|Behavioral Guidelines Documentation]] - [[_COMMUNITY_Session API Client|Session API Client]] - [[_COMMUNITY_Tier 3 Error Handling|Tier 3 Error Handling]] - [[_COMMUNITY_Web Packaging and CLI Argument Tests|Web Packaging and CLI Argument Tests]] - [[_COMMUNITY_Conversation API Specification|Conversation API Specification]] - [[_COMMUNITY_CLI Command Rendering and Usage|CLI Command Rendering and Usage]] - [[_COMMUNITY_TUI Shell Implementation|TUI Shell Implementation]] - [[_COMMUNITY_Contract Amendments for Presenter States|Contract Amendments for Presenter States]] - [[_COMMUNITY_Session Creation API|Session Creation API]] - [[_COMMUNITY_Web Server Endpoint Handling|Web Server Endpoint Handling]] - [[_COMMUNITY_SSE ID Parsing|SSE ID Parsing]] - [[_COMMUNITY_Persona State Retrieval|Persona State Retrieval]] - [[_COMMUNITY_Agent Deletion and Authentication|Agent Deletion and Authentication]] - [[_COMMUNITY_Agent Listing Client|Agent Listing Client]] - [[_COMMUNITY_Browser SSE Stream Parsing|Browser SSE Stream Parsing]] - [[_COMMUNITY_Canonical Sync Documentation|Canonical Sync Documentation]] - [[_COMMUNITY_Conversation API Contract Details|Conversation API Contract Details]] - [[_COMMUNITY_Design Brief and Architecture Decisions|Design Brief and Architecture Decisions]] - [[_COMMUNITY_System Prompt Constraints|System Prompt Constraints]] - [[_COMMUNITY_Mood and Emotion Tracking|Mood and Emotion Tracking]] - [[_COMMUNITY_Web Server Functional Tests|Web Server Functional Tests]] - [[_COMMUNITY_Upload Management and Capabilities|Upload Management and Capabilities]] - [[_COMMUNITY_Tier 3 Agent Patching Tests|Tier 3 Agent Patching Tests]] - [[_COMMUNITY_Agent Documentation and Attribution|Agent Documentation and Attribution]] - [[_COMMUNITY_Tier 3 Module Contract|Tier 3 Module Contract]] - [[_COMMUNITY_Web Server Contract Updates|Web Server Contract Updates]] - [[_COMMUNITY_Turn Cancellation via SSE|Turn Cancellation via SSE]] - [[_COMMUNITY_Web Server Contract Version 16|Web Server Contract Version 16]] - [[_COMMUNITY_SSE Event Types and Tooling|SSE Event Types and Tooling]] - [[_COMMUNITY_Cross-User Isolation and Task Management|Cross-User Isolation and Task Management]] - [[_COMMUNITY_Task Query Parameters and Results|Task Query Parameters and Results]] - [[_COMMUNITY_TUI Contract Amendments|TUI Contract Amendments]] - [[_COMMUNITY_Session ID Support Contract|Session ID Support Contract]] - [[_COMMUNITY_TUI Startup Error Visibility|TUI Startup Error Visibility]] - [[_COMMUNITY_TUI Contract Invariants and Amendments|TUI Contract Invariants and Amendments]] - [[_COMMUNITY_Turn Cancellation and Logging|Turn Cancellation and Logging]] - [[_COMMUNITY_Mock Client Factory for Persona State|Mock Client Factory for Persona State]] - [[_COMMUNITY_Turn Cancellation Endpoint|Turn Cancellation Endpoint]] - [[_COMMUNITY_Admin Event Stream and Tools|Admin Event Stream and Tools]] - [[_COMMUNITY_BM25 Search Ranking and API|BM25 Search Ranking and API]] - [[_COMMUNITY_Presentation Contract JSON|Presentation Contract JSON]] - [[_COMMUNITY_Monkey Patching for Local Agents|Monkey Patching for Local Agents]] - [[_COMMUNITY_Contract Format Specification|Contract Format Specification]] - [[_COMMUNITY_Contract Version 2.1 Amendments|Contract Version 2.1 Amendments]] - [[_COMMUNITY_Agent and Session Management Endpoints|Agent and Session Management Endpoints]] - [[_COMMUNITY_Character Lifecycle and Management|Character Lifecycle and Management]] - [[_COMMUNITY_Development Methodology|Development Methodology]] - [[_COMMUNITY_Model Response and Usage Tracking|Model Response and Usage Tracking]] - [[_COMMUNITY_Local Agents Path Resolution|Local Agents Path Resolution]] - [[_COMMUNITY_Project README Overview|Project README Overview]] - [[_COMMUNITY_Function Block Contract Syntax|Function Block Contract Syntax]] - [[_COMMUNITY_Admin Event Stream Specification|Admin Event Stream Specification]] - [[_COMMUNITY_Spec Pinning Documentation|Spec Pinning Documentation]] - [[_COMMUNITY_Turn Status and Timing Data|Turn Status and Timing Data]] - [[_COMMUNITY_Error Code and Worker Phase Handling|Error Code and Worker Phase Handling]] - [[_COMMUNITY_CLI and TUI Contract Amendments|CLI and TUI Contract Amendments]] - [[_COMMUNITY_Admin API Key Management|Admin API Key Management]] - [[_COMMUNITY_CLI Contract Details|CLI Contract Details]] - [[_COMMUNITY_Description Synthesis for Picker|Description Synthesis for Picker]] - [[_COMMUNITY_Canonical Sync Pinning Utility|Canonical Sync Pinning Utility]] - [[_COMMUNITY_Malformed SSE Frame Testing|Malformed SSE Frame Testing]] - [[_COMMUNITY_Session Creation Endpoint Tests|Session Creation Endpoint Tests]] - [[_COMMUNITY_Turn Submission Endpoint Tests|Turn Submission Endpoint Tests]] - [[_COMMUNITY_Server-Side End User ID Handling|Server-Side End User ID Handling]] - [[_COMMUNITY_Application Creation and Routing|Application Creation and Routing]] - [[_COMMUNITY_Frontmatter and Dependency Management|Frontmatter and Dependency Management]] - [[_COMMUNITY_User Agent Versioning|User Agent Versioning]] - [[_COMMUNITY_Architecture Overview|Architecture Overview]] - [[_COMMUNITY_Session Lifecycle Amendment|Session Lifecycle Amendment]] - [[_COMMUNITY_Ad-Hoc Session Lifecycle|Ad-Hoc Session Lifecycle]] - [[_COMMUNITY_Cursor Envelope and Pagination|Cursor Envelope and Pagination]] - [[_COMMUNITY_SSE Client Contract|SSE Client Contract]] - [[_COMMUNITY_Session Lifecycle Contract|Session Lifecycle Contract]] - [[_COMMUNITY_Development Principles|Development Principles]] - [[_COMMUNITY_Default Agent Routing Amendment|Default Agent Routing Amendment]] - [[_COMMUNITY_Stream Turn Enhancements|Stream Turn Enhancements]] - [[_COMMUNITY_Rate Limiting and Token Management|Rate Limiting and Token Management]] - [[_COMMUNITY_Client Reconnect Guidance|Client Reconnect Guidance]] - [[_COMMUNITY_Ephemeral Session Continuity|Ephemeral Session Continuity]] - [[_COMMUNITY_Session CRUD Operations|Session CRUD Operations]] - [[_COMMUNITY_Session Failure Modes and Responses|Session Failure Modes and Responses]] - [[_COMMUNITY_Community 99|Community 99]] - [[_COMMUNITY_Event Metadata|Event Metadata]] - [[_COMMUNITY_Persistent Memory Overview|Persistent Memory Overview]] - [[_COMMUNITY_Contract Drift Check|Contract Drift Check]] - [[_COMMUNITY_SSE Empty Data Handling|SSE Empty Data Handling]] - [[_COMMUNITY_Stream Turn Endpoint Tests|Stream Turn Endpoint Tests]] - [[_COMMUNITY_Upstream Turn ID Cancellation|Upstream Turn ID Cancellation]] - [[_COMMUNITY_Triadic Block Routing|Triadic Block Routing]] - [[_COMMUNITY_Constraints and Subsections|Constraints and Subsections]] - [[_COMMUNITY_Authorization Model for Agents|Authorization Model for Agents]] - [[_COMMUNITY_SSE Content Data|SSE Content Data]] - [[_COMMUNITY_Cancelled Message Handling|Cancelled Message Handling]] - [[_COMMUNITY_Implicit Tool Call Narration|Implicit Tool Call Narration]] - [[_COMMUNITY_Canonical Drift Calculation|Canonical Drift Calculation]] - [[_COMMUNITY_Agent Source vs Live Editing|Agent Source vs Live Editing]] - [[_COMMUNITY_Agent Context Discriminator|Agent Context Discriminator]] - [[_COMMUNITY_SSE No ID Frame Handling|SSE No ID Frame Handling]] - [[_COMMUNITY_Local Settings Permissions|Local Settings Permissions]] - [[_COMMUNITY_MCP Tool Annotations on STEPS|MCP Tool Annotations on STEPS]] - [[_COMMUNITY_External Invariants Frontmatter|External Invariants Frontmatter]] - [[_COMMUNITY_Scenario Trace Test Categorization|Scenario Trace Test Categorization]] - [[_COMMUNITY_OpenSpec Revisions Frontmatter|OpenSpec Revisions Frontmatter]] - [[_COMMUNITY_Flexibility Annotation on STEPS|Flexibility Annotation on STEPS]] - [[_COMMUNITY_Issue-Scoped Frontmatter Shape|Issue-Scoped Frontmatter Shape]] - [[_COMMUNITY_Plan Revision Huginn Pattern|Plan Revision Huginn Pattern]] - [[_COMMUNITY_Admin Session Inspection Amendment|Admin Session Inspection Amendment]] - [[_COMMUNITY_Pending Task Visibility Amendment|Pending Task Visibility Amendment]] - [[_COMMUNITY_SSE Phase Events Amendment|SSE Phase Events Amendment]] - [[_COMMUNITY_Tier 3 Consumer-Defined Agents Amendment|Tier 3 Consumer-Defined Agents Amendment]] - [[_COMMUNITY_No Worldtree Imports Test|No Worldtree Imports Test]] - [[_COMMUNITY_Ratatoskr Worldtree API TUI|Ratatoskr Worldtree API TUI]] - [[_COMMUNITY_Ratatoskr Web Browser Debug Companion|Ratatoskr Web Browser Debug Companion]] - [[_COMMUNITY_Community 132|Community 132]] - [[_COMMUNITY_Community 133|Community 133]] - [[_COMMUNITY_Community 134|Community 134]] - [[_COMMUNITY_Community 135|Community 135]] - [[_COMMUNITY_Community 136|Community 136]] - [[_COMMUNITY_Community 137|Community 137]] - [[_COMMUNITY_Community 138|Community 138]] - [[_COMMUNITY_Community 139|Community 139]] - [[_COMMUNITY_Community 140|Community 140]] - [[_COMMUNITY_Community 141|Community 141]] - [[_COMMUNITY_Community 142|Community 142]] - [[_COMMUNITY_Community 143|Community 143]] - [[_COMMUNITY_Community 144|Community 144]] - [[_COMMUNITY_Community 145|Community 145]] - [[_COMMUNITY_Community 146|Community 146]] - [[_COMMUNITY_Community 147|Community 147]] - [[_COMMUNITY_Community 148|Community 148]] - [[_COMMUNITY_Community 149|Community 149]] - [[_COMMUNITY_Community 150|Community 150]] - [[_COMMUNITY_Community 151|Community 151]] ## God Nodes (most connected - your core abstractions) 1. `TuiPresenterState` - 84 edges 2. `Done` - 78 edges 3. `Cancelled` - 78 edges 4. `ParsedArgs` - 77 edges 5. `SseId` - 75 edges 6. `LocalAgentEntry` - 74 edges 7. `RatatoskrApp` - 73 edges 8. `Text` - 71 edges 9. `WorkerPhase` - 68 edges 10. `ToolStart` - 67 edges ## Surprising Connections (you probably didn't know these) - `test_build_app_from_env_builds_app_with_routes()` --calls--> `build_app_from_env()` [INFERRED] tests/test_provider_serve.py → src/ratatoskr/provider/serve.py - `test_build_app_from_env_requires_heimdall_key()` --calls--> `build_app_from_env()` [INFERRED] tests/test_provider_serve.py → src/ratatoskr/provider/serve.py - `test_get_absent_returns_none()` --calls--> `open_affect_store()` [INFERRED] tests/test_provider_affect.py → src/ratatoskr/provider/affect_store.py - `test_open_advertises_capability_and_schema()` --calls--> `open_affect_store()` [INFERRED] tests/test_provider_affect.py → src/ratatoskr/provider/affect_store.py - `test_reopen_existing_file_is_idempotent()` --calls--> `open_affect_store()` [INFERRED] tests/test_provider_affect.py → src/ratatoskr/provider/affect_store.py ## Import Cycles - None detected. ## Communities (152 total, 28 thin omitted) ### Community 0 - "TuiPresenterState Management" Cohesion: 0.05 Nodes (40): Per-turn presenter state for TUI mode (issue #12). See `docs/contracts/issu, TuiPresenterState, _make_tui_done(), _mounted_renderables(), current_invokes_callback_with_snapshot: AffectUpdate(current, snapshot), scheduled_does_not_invoke_callback: status=scheduled has no snapshot, so, callback_exception_swallowed: a raising callback does NOT crash the pres, done_label_styled_success [v0.9.0]: [done] label mounts as Static carryi (+32 more) ### Community 1 - "EventSource SSE Consumer" Cohesion: 0.08 Nodes (14): Sync entry point — delegates to the async resolve-then-run flow. Per issue, run_tui(), happy_new_session_resolve [happy]: --new path through _resolve_then_run., happy_new_with_end_user_id_resolve [happy]: args.end_user_id threads into POST b, user_agent_header_sent [trace]: outbound requests carry the ratatoskr User-Agent, alt_screen_never_opens_on_resolve_error [trace]: 404 → run_tui=12; run_async unh, session_api_failed_on_resolve [error]: --new + 500 → [session_api_failed] stderr, network_error_on_resolve [error]: --new + ConnectError → [network_error] stderr. (+6 more) ### Community 2 - "Parsed CLI Arguments Handling" Cohesion: 0.14 Nodes (73): NamedTuple, ParsedArgs, Resolved CLI invocation. Post-validation: exactly one of session_id / new is set, AgentInfo, Worldtree agent envelope from GET /agents (issue #8). INV-005: required fie, AffectUpdate, AwaitingLlmFirstToken, Cancelled (+65 more) ### Community 3 - "Agent Information Management" Cohesion: 0.08 Nodes (86): AgentInfo, ComposeResult, EventSource, Exception, FileResponse, _ArgparseError, _AuthError, Raised when no API key is resolvable; mapped to exit code 11 by main(). (+78 more) ### Community 4 - "TUI Tests and Contract Verification" Cohesion: 0.13 Nodes (17): _args_existing(), Type content into the input and submit; wait for worker to finish., happy_text_done_no_double_print [happy,tracer, v0.9.0]: Text("hello") mo, raw_flag_skips_markdown_render [trace, v0.9.0]: With --raw, the response, error_terminal_returns_to_idle [happy]: …, cancelled_terminal_returns_to_idle [happy]: …, active_turn_id_set_on_first_event [trace]: …, connection_dropped_returns_to_idle [error]: … (+9 more) ### Community 5 - "CLI Arguments Parsing Contract" Cohesion: 0.04 Nodes (26): main(), _parse_args(), argparse + env-fallback + xor-validation per the contract., Sync entry point. Maps UsageError/_AuthError to exit codes BEFORE the event loop, happy_existing_session: --send --session --api-key → ParsedArgs with session_id., api_key_from_env: WORLDTREE_API_KEY env var fills in when --api-key omitted., server_default: no --server, no WORLDTREE_API_URL → http://localhost:8000., server_env_fallback: WORLDTREE_API_URL fills in when --server omitted. (+18 more) ### Community 6 - "Sync Entry Point and Session Resolution" Cohesion: 0.17 Nodes (7): POST a message and yield typed Events. See contract FN stream_turn., stream_turn(), session_not_found: 404 -> SseConnectFailed(status=404)., malformed_id_no_seq: id `42` (missing :seq) -> MalformedSseId; no event yielded., malformed_id_alpha: id `foo:bar` -> MalformedSseId., INV-001: empty stream (no events at all) -> SseConnectionDropped(None)., ERROR_ROUTING: SseConnectFailed.body is truncated to <= 1024 bytes. ### Community 7 - "Stream Turn Rendering and Cancellation" Cohesion: 0.05 Nodes (53): _amain(), Drive stream_turn, render events, race against sigint_event for mid-stream cance, Async orchestrator: create-session (if --new) → SIGINT install → _run_turn → cle, Raised on argument violations; mapped to exit code 10 by main()., _run_turn(), UsageError, SSE event `text_boundary`: speakable breakpoint after a `text` event., TextBoundary (+45 more) ### Community 8 - "Worldtree Session Client" Cohesion: 0.04 Nodes (47): AgentNotAvailable, AuthScopeDenied, get_persona_state(), InvalidCursor, list_sessions(), PersonaNotConfigured, Worldtree Conversation API session-lifecycle client. Implements docs/contracts/, Raised on HTTP 404 `agent_not_available` from GET persona_state. The agent_ (+39 more) ### Community 9 - "Tier 3 Agent Lifecycle Client" Cohesion: 0.08 Nodes (19): _args_new(), Construct RatatoskrApp with pre-resolved state (issue #6 lifecycle). Produc, happy_new_session_mount [happy,tracer]: identity populated from pre-resolved sta, footer_identity_visible_first_frame [trace]: identity widget rendered first fram, main_row_is_horizontal [tracer]: compose() yields Horizontal#main-row., left_column_content_only [v0.9.0]: left column = transcript-scroll Verti, right_column_has_tabbed_content_with_tools_tab: #side-panes + TabPane#tools-tab., tools_log_inside_tools_tab: tools-transcript RichLog is a descendant of tools-ta (+11 more) ### Community 10 - "CLI Presenter State Management" Cohesion: 0.11 Nodes (36): Any, Connection, build_affect_provider_app(), _ctx_actor(), open_affect_store(), RatatoskrAffectStore, SQLite-backed, conduit-opaque affect store (Bifrost affect plane, v1). Contract, Read-back of the stored snapshot (tests / future rehydrate-seed). (+28 more) ### Community 11 - "Ratatoskr Application Argument Handling" Cohesion: 0.07 Nodes (26): CliPresenterState, _format_duration_ms(), Auto-scale duration formatting per issue #12 INV-006. Locale-blind., Per-turn presenter state for `--send` mode (issue #12). See `docs/contracts, Render one Worldtree SSE event with editorial hierarchy + coalescing., _make_done(), Tests for the new CliPresenterState — per issue #12 contract., thinking_coalesce_single_run [happy,tracer]: Thinking("hello") + Thinkin (+18 more) ### Community 12 - "Stream Turn Event Processing" Cohesion: 0.14 Nodes (8): happy_one_text_done: text then done; same turn_id; iter ends after done., error_terminal: text then error; iteration ends; error_code populated., connection_drop: RemoteProtocolError after one text -> SseConnectionDropped((42,, no_text_aggregation: consumer yields each text event separately; no concat., Compose one SSE event in wire format. Trailing blank line per spec., current_status_parsed_with_snapshot [tracer]: status=current carries the, scheduled_status_parsed_no_snapshot [trace]: status=scheduled carries no, _sse_chunk() ### Community 13 - "Local Tier 3 Agent Index Management" Cohesion: 0.07 Nodes (43): LocalAgentEntry, Namespace, add_local_agent(), load_local_agents(), _local_agents_path(), LocalAgentEntry, make_description(), Local index of tier-3 agents defined via `python -m ratatoskr.tier3`. Workaroun (+35 more) ### Community 14 - "Ratatoskr Application Core" Cohesion: 0.07 Nodes (19): _cancel_via_sse(), Populate identity widget from pre-resolved state; set idle hint. Per is, Hydrate persona-header + Persona pane via GET /agents/{id}/persona_state., Render an italic-dim placeholder in the Persona pane; keep header empty., v0.6.0: turn-ID headers across every pane for cross-pane correlation. v0, Set the hint state attribute AND update the visible Static widget., Write a timestamped audit line to the debug pane. v0.10.0: shared sink, Set self.state with debug-pane audit log. Every state machine transitio (+11 more) ### Community 15 - "Async Main Orchestrator" Cohesion: 0.17 Nodes (7): happy_submit_echoes_and_spawns [happy,tracer]: …, empty_submit_no_op [trace]: '' + Enter → no change; no worker spawned., submit_during_streaming_shows_busy_notice [adversarial]: …, submit_during_cancelling_shows_busy_notice [adversarial]: …, sse_connect_failed_returns_to_idle [error]: …, Patch RichLog.write AND VerticalScroll.mount to record every renderable or m, _spy_writes() ### Community 16 - "Contract Parsing and Function Extraction" Cohesion: 0.10 Nodes (34): Contract, ErrorSpec, _extract_function_blocks(), FunctionBlock, _is_issue_scoped(), main(), _parse_body_sections(), parse_contract() (+26 more) ### Community 17 - "Behavioral Guidelines Documentation" Cohesion: 0.06 Nodes (29): 1. Think Before Coding, 2. Simplicity First, 3. Surgical Changes, 4. Goal-Driven Execution, Architecture map, BEHAVIORAL GUIDELINES, Canonical Corviduo specifications, Contract-first workflow (+21 more) ### Community 18 - "Session API Client" Cohesion: 0.07 Nodes (16): _parse_sse_id(), Parse the SSE wire `id:` as composite `{turn_id}:{seq}`. See contract FN _parse_, negative_seq [adversarial]: '42:-1' -> ValueError., trailing_whitespace [adversarial]: '42:3 ' -> ValueError (strict; no strip)., truncation [security]: 5000-char no-colon -> ValueError msg contains only raw[:6, PRE-001 hard: raw is a string -- isinstance check before parse., happy_simple [happy,tracer]: '42:3' -> SseId(turn_id=42, seq=3)., happy_seq_one: smallest valid id per spec — first event of first turn. (+8 more) ### Community 19 - "Tier 3 Error Handling" Cohesion: 0.25 Nodes (5): _args_new_no_agent(), ParsedArgs for bare --new (no --agent) — TUI-mode picker entry., picker_happy_path [happy,tracer]: agents fetched → picker exits with id → create, picker_esc_clean_exit: picker returns None → exit 0; no create_session; no main, list_agents 500 → stderr [session_api_failed]; exit 20; picker NOT opened. ### Community 20 - "Web Packaging and CLI Argument Tests" Cohesion: 0.07 Nodes (23): ArgumentParser, Packaging + lazy-import discipline tests for ratatoskr.web per issue #16. - `in, FN main argparse + serve-loop traces (contract TESTS)., default_host_is_zero [trace]: argv=[] → host == '0.0.0.0'., port_zero_supported [trace]: argv=['--port','0'] → port == 0., static/index.html is locatable via importlib.resources. INV-009 packaging d, happy_argv [tracer]: env set + uvicorn.run mocked → main returns 0., open_flag_calls_webbrowser [trace]: --open → webbrowser.open called. (+15 more) ### Community 21 - "Conversation API Specification" Cohesion: 0.07 Nodes (26): Admin inspection endpoints, Appendix: `agent.ui_hints` config block, Authentication, Base URL, Client Implementation Guide, Custom exception handler status-code mapping, Endpoints, Error Codes (+18 more) ### Community 23 - "TUI Shell Implementation" Cohesion: 0.15 Nodes (12): _format_usage(), Natural-language usage formatting per issue #12 INV-007. `arrow="->"` for C, _audit_line(), _plain_label(), Ratatoskr Textual TUI shell — interactive primary presenter. Implements docs/co, Pre-flight session resolution then App.run_async() inside one event loop. E, Pre-amendment labeled-line shape for INV-009 render-exception fallback. Use, HH:MM:SS.fff wall-clock timestamp for debug-pane log lines. (+4 more) ### Community 24 - "Contract Amendments for Presenter States" Cohesion: 0.09 Nodes (22): Acceptance, `_amain` STEPS amended, Architecture, `CLASS CliPresenterState` (NEW), `CLASS TuiPresenterState` (NEW), Constraints, Context, Data flow (+14 more) ### Community 25 - "Session Creation API" Cohesion: 0.05 Nodes (22): create_session(), list_agents(), POST /sessions to create a new session. See contract FN create_session. Per, GET /agents — list available agents. See contract FN list_agents (issue #8)., AsyncClient, validation_failed: 422 -> SessionApiFailed(status=422); body truncated., unexpected_status_truncates: 500 + 5000-byte body -> SessionApiFailed; body == 1, empty_agent_id [adversarial]: '' -> AssertionError; no HTTP issued. (+14 more) ### Community 26 - "Web Server Endpoint Handling" Cohesion: 0.09 Nodes (33): JSONResponse, Request, v0.16.0 — cancel paths must target the UPSTREAM turn_id, not the browser-loc, A registered handle whose local turn_id (1) differs from its captured up, A handle with upstream_turn_id still None (turn never opened the upstrea, stream_turn_endpoint INV-005 — browser disconnect mid-stream triggers upstre, TestDisconnectCancel, TestUpstreamTurnIdCancel (+25 more) ### Community 27 - "SSE ID Parsing" Cohesion: 0.19 Nodes (17): _check(), _load_fixture(), Drift-detection between TUI presentation discipline and web JS presenter per iss, Assert (event_type, data) for `event` matches the fixture entry., test_affect_update_matches_fixture(), test_awaiting_llm_first_token_matches_fixture(), test_cancelled_matches_fixture(), test_done_matches_fixture() (+9 more) ### Community 29 - "Agent Deletion and Authentication" Cohesion: 0.50 Nodes (3): lifespan_shutdown FN — INV-006: drain turn_registry within 5s budget., happy [tracer]: 2 in-flight turns + shutdown → upstream cancels called., TestLifespanShutdown ### Community 31 - "Browser SSE Stream Parsing" Cohesion: 0.14 Nodes (16): _parse_browser_sse(), AsyncByteStream, Response, Tests for ratatoskr.web.server per docs/contracts/issues/16.contract.md. The Te, SSE response backed by a live AsyncByteStream (for gated/hanging streams in, Parse a server-to-browser SSE stream into [{"event": str, "data": dict}, ...]., happy [tracer]: respx mock one text+done → SSE stream yields text + done events., The stream generator captures upstream turn_id from the first event's ss (+8 more) ### Community 32 - "Canonical Sync Documentation" Cohesion: 0.12 Nodes (16): As a canonical consumer (you pin against someone else's spec), As a canonical publisher (your project owns a spec others should pin), Bump procedures, Canonical-sync — the pattern, the tooling, and the documented adopters, Cross-references, Decision rule (which path?), Documented adopters, How to adopt (+8 more) ### Community 33 - "Conversation API Contract Details" Cohesion: 0.12 Nodes (16): Amendment — Admin Event Stream (issue #127), Bifrost MCP-in-Reverse Binding (issue #160), Constraints, Context, Data flow, Ephemeral Template Surface (issue #161), Function-level contracts: Search (issue #122), Function-level contracts: Tool-Call Persistence (issue #123) (+8 more) ### Community 34 - "Design Brief and Architecture Decisions" Cohesion: 0.12 Nodes (16): 1. TUI framework — recommend Textual, 2. Repo placement and version-skew strategy, 3. SSE consumption pattern — recommend `httpx-sse`, 4. Session model — recommend (a) single-session, auto-resume, plus a startup picker, 5. Debug-observability surface — recommend multi-pane log dashboard, 6. Scope creep guards — frame is correct, one narrowing, 7. Naming — locked: Ratatoskr, 8. Terminal-mechanics and shape decisions (per Volva's fresh-look) (+8 more) ### Community 35 - "System Prompt Constraints" Cohesion: 0.12 Nodes (15): BEHAVIORAL CONSTRAINTS, CORE DIRECTIVE, EMOTIONAL TEMPERATURE, FAILURE & RESURFACING, FORM ASSUMPTION, GENDER CONSTRAINT, GRATIFICATION & MOMENTUM, IDENTITY (+7 more) ### Community 36 - "Mood and Emotion Tracking" Cohesion: 0.12 Nodes (16): arousal, dominance, pleasure, snapshot, arousal_delta, valence_delta, arousal, dominance (+8 more) ### Community 37 - "Web Server Functional Tests" Cohesion: 0.50 Nodes (3): root_endpoint FN + /static mount — index.html + static asset serving., happy [tracer]: GET / → 200, content-type text/html, body contains ':` — `204 No Content`, Endpoints, Error codes (Phase 2.0), `GET /sessions//tools` — owner-scoped tool introspection (#183, Phase 2.0.1), Key-revocation cascade, `PATCH /agents/:`, `POST /agents/define`, `POST /sessions` — Tier 3 routing (+2 more) ### Community 63 - "Character Lifecycle and Management" Cohesion: 0.20 Nodes (10): `DELETE /characters/{character_id}`, Errors, Example client (JS), `GET /characters/{character_id}/state`, `GET /models/available-for-characters`, Lifecycle, PII discipline, `POST /characters` (+2 more) ### Community 64 - "Development Methodology" Cohesion: 0.20 Nodes (9): 1. Vor (optional), 2. Contract (required), 3. Branch — direct or AFK TDD, 4. Verify against contract, 5. Merge / commit, AFK TDD (sleipnir-shaped), Direct TDD, Methodology (+1 more) ### Community 65 - "Model Response and Usage Tracking" Cohesion: 0.20 Nodes (10): model, response, usage, done, data, event_type, cached_input_tokens, completion_tokens (+2 more) ### Community 67 - "Project README Overview" Cohesion: 0.20 Nodes (9): Boundary rule, Consumer-side discoveries, Quickstart, Ratatoskr, Read in this order, Related repos, Status, Version-skew strategy (+1 more) ### Community 68 - "Function Block Contract Syntax" Cohesion: 0.22 Nodes (9): 3. Function blocks, Error blocks, Field reference, Postcondition syntax, Precondition syntax, State transitions, Step syntax — SCoT-typed, Syntax (+1 more) ### Community 69 - "Admin Event Stream Specification" Cohesion: 0.22 Nodes (9): Admin Event Stream, Envelope shape, Example JS client, GET /admin/events, Heartbeat, In-memory ring buffer, Last-Event-ID resume semantics, Queue overflow and system.events_dropped (+1 more) ### Community 70 - "Spec Pinning Documentation" Cohesion: 0.22 Nodes (8): Bump procedure, Conformance smoke check, Current pin, History, Pin history, Vendored artifacts, Why pin?, Worldtree spec pin ### Community 71 - "Turn Status and Timing Data" Cohesion: 0.15 Nodes (14): awaiting_llm_first_token, data, event_type, cancelled, data, event_type, elapsed_ms_since_building_prompt, partial_message_id (+6 more) ### Community 72 - "Error Code and Worker Phase Handling" Cohesion: 0.40 Nodes (5): error_code, message, error, data, event_type ### Community 73 - "CLI and TUI Contract Amendments" Cohesion: 0.22 Nodes (8): Architecture, CLI amendments (issue #3 contract concurrent amendment), Constraints, Context, Data flow, Invariants, Out of scope, TUI shell — Textual app, single chat pane, two-stage Ctrl-C ### Community 74 - "Admin API Key Management" Cohesion: 0.25 Nodes (8): Admin: API Key Management, Bootstrap: first admin key, DELETE /admin/keys/{key_id}, GET /admin/keys, POST /admin/keys, POST /admin/keys/{key_id}/rotate, Status codes, Trust boundary ### Community 75 - "CLI Contract Details" Cohesion: 0.25 Nodes (7): Architecture, CLI — Non-interactive --send stdout presenter, Constraints, Context, Data flow, Invariants, Out of scope ### Community 77 - "Canonical Sync Pinning Utility" Cohesion: 0.36 Nodes (7): main(), SHA-256 hash, first 16 hex chars., Replace the quoted value in a `key = "value"` line, preserving leading white, Surgically update one pin's `pinned_sha256_16` + `pinned_at` lines in the ma, _replace_value_preserve_format(), sha256_16(), update_pin_in_manifest_text() ### Community 78 - "Malformed SSE Frame Testing" Cohesion: 0.25 Nodes (5): SSE frame with id + arbitrary raw data (for testing malformed JSON)., malformed_data_raises [error]: text + bad-JSON → yields Text then MalformedSseDa, whitespace_data_raises [adv]: single-space data → MalformedSseData (NOT skipped), malformed_data_truncation [security]: 5000-char bad data → raw truncated to 200., _sse_raw_chunk() ### Community 79 - "Session Creation Endpoint Tests" Cohesion: 0.25 Nodes (5): create_session_endpoint FN — proxy POST /sessions to upstream., happy [tracer]: respx mock 201 → endpoint returns 201 with session JSON., unknown_agent [error]: respx 404 → 404 with agent_not_found envelope., missing_agent_id [adversarial]: body without agent_id → 400., TestCreateSessionEndpoint ### Community 80 - "Turn Submission Endpoint Tests" Cohesion: 0.25 Nodes (5): submit_turn_endpoint FN — allocate turn_id, register in turn_registry., happy [tracer]: POST {"content": "hi"} → 200 with turn_id; registry populated., missing_content [adversarial]: body without content → 400., monotonic_turn_ids [trace]: two submits → second turn_id > first., TestSubmitTurnEndpoint ### Community 81 - "Server-Side End User ID Handling" Cohesion: 0.25 Nodes (5): v0.16.0 — end_user_id is server-configured (RATATOSKR_END_USER_ID via create, create_app(end_user_id=...) → POST /api/sessions threads that id into th, A browser-supplied end_user_id is IGNORED — the server's configured valu, When create_app gets no end_user_id, the upstream body omits it (matches, TestServerSideEndUserId ### Community 82 - "Application Creation and Routing" Cohesion: 0.25 Nodes (5): create_app FN — route registration + state wiring (contract TESTS)., routes_registered [tracer]: app.routes contains all 9 path patterns., state_attached [trace]: app.state.turn_registry is empty dict., factory_stored [trace]: app.state.client_factory is the same callable., TestCreateAppShape ### Community 83 - "Frontmatter and Dependency Management" Cohesion: 0.29 Nodes (7): 1. Frontmatter, `complexity` guide, `dependencies:` — dispatch-ordering metadata (Sleipnir / preflight), Dependency fields — `depends_on` vs `dependencies`, `depends_on:` — module-architecture metadata, `prd` block — pinning a contract to its source-of-truth, Why two fields ### Community 84 - "User Agent Versioning" Cohesion: 0.50 Nodes (3): version_endpoint FN — tracer per contract issue #16., happy [tracer]: GET /version → 200, body == {"ratatoskr": ""}., TestVersionEndpoint ### Community 85 - "Architecture Overview" Cohesion: 0.29 Nodes (6): Cross-references, Dependency graph, Execution order, Module map, ratatoskr — architecture, Session-load boundaries ### Community 86 - "Session Lifecycle Amendment" Cohesion: 0.29 Nodes (7): Acceptance tests for the amendment, Amendment — turn lifecycle infrastructure (INV-033..INV-038), Cancel-registry shape delta, `cancel_turn` — STEPS amendment, Configuration, Storage schema delta, `stream_turn` — STEPS amendment ### Community 87 - "Ad-Hoc Session Lifecycle" Cohesion: 0.29 Nodes (7): Ad-hoc session lifecycle, Capability requirement, Error responses, Per-Message Bifrost Endpoint Override (issue #166), Reentrancy cap, Request payload extension, Telemetry ### Community 88 - "Cursor Envelope and Pagination" Cohesion: 0.29 Nodes (7): Cursor envelope, Error code, Forward iteration (client pseudocode), Pagination, Query parameters, Response shape, Semantics ### Community 89 - "SSE Client Contract" Cohesion: 0.29 Nodes (6): Constraints, Context, Data flow, Invariants, Resume semantics, SSE Client — Worldtree Conversation API turn streaming ### Community 90 - "Session Lifecycle Contract" Cohesion: 0.29 Nodes (6): Constraints, Context, Data flow, Invariants, Out of scope, Sessions — Worldtree Conversation API session lifecycle ### Community 91 - "Development Principles" Cohesion: 0.29 Nodes (6): 1. Excellence over uniqueness, 2. Explicit over implicit, 3. Elegance is a byproduct, not a target, 4. Action-relevance over thoroughness, Principles, What this file is, and isn't ### Community 92 - "Default Agent Routing Amendment" Cohesion: 0.33 Nodes (6): Amendment — Default agent (Lofn) routing (issue #182), Function block, Handoff: no surface added, Invariants, No new storage, no new audit events, Request-model change ### Community 93 - "Stream Turn Enhancements" Cohesion: 0.33 Nodes (6): Changes to `stream_turn`, Invariants added by issue #166, New ErrorCode, New Request Model, Per-Message Bifrost Endpoint Override (issue #166), Validation and handshake flow (in `send_message` handler) ### Community 94 - "Rate Limiting and Token Management" Cohesion: 0.33 Nodes (6): 429 Response, Configuration (`config/defaults.yaml`), Rate Limiting, Scopes, Successful response headers (X-RateLimit-*), Token-rate post-charge ### Community 95 - "Client Reconnect Guidance" Cohesion: 0.33 Nodes (6): Client reconnect guidance, Reconnect flow, Reconnect & Resume, Replay buffer, SSE id format, Status codes for resume requests ### Community 96 - "Ephemeral Session Continuity" Cohesion: 0.33 Nodes (6): Continuity, Default agent (Lofn) (issue #182), `end_user_id` is required, Matrix bridge, Request shape, What Lofn does ### Community 97 - "Session CRUD Operations" Cohesion: 0.33 Nodes (6): Creating an ephemeral session, Discovering available templates, Ephemeral Templates (issue #161), Scope, Sending messages to an ephemeral session, What Saga does NOT do ### Community 98 - "Session Failure Modes and Responses" Cohesion: 0.33 Nodes (6): DELETE /sessions/{session_id}, GET /sessions/{session_id}, GET /sessions/{session_id}/messages, PATCH /sessions/{session_id}, POST /sessions/{session_id}/messages, Session Mutation ### Community 99 - "Community 99" Cohesion: 0.33 Nodes (6): Failure mode, GET /me, Key resolution rule (best-effort identification), Response fields, Response shapes, Status codes ### Community 100 - "Event Metadata" Cohesion: 0.33 Nodes (6): char_offset, kind, ts, text_boundary, data, event_type ### Community 101 - "Persistent Memory Overview" Cohesion: 0.33 Nodes (5): Current state / in-flight, Persistent memory — ratatoskr, Recent decisions, Repo purpose, Tried and abandoned ### Community 102 - "Contract Drift Check" Cohesion: 0.60 Nodes (5): fetch_issue_state(), load_frontmatter(), main(), Any, sha16() ### Community 103 - "SSE Empty Data Handling" Cohesion: 0.33 Nodes (4): SSE frame with id but empty data (server-emitted keepalive shape)., empty_data_skipped [trace]: 4 frames in, 3 events out; skip preserves last_sse_i, empty_skip_does_not_advance [trace]: drop-after-empty → last_seen is last real e, _sse_empty_chunk() ### Community 104 - "Stream Turn Endpoint Tests" Cohesion: 0.33 Nodes (4): stream_turn_endpoint FN — open upstream SSE, proxy events to browser., unknown_turn [error]: GET with turn_id not in registry → 404., upstream_error [error]: respx 500 → synthetic error SSE event., TestStreamTurnEndpoint ### Community 106 - "Triadic Block Routing" Cohesion: 0.40 Nodes (5): 2.1.A — `ERROR_ROUTING:` triadic block (SHIELDA), Example, Syntax, v2.0 back-compat, Why three axes ### Community 107 - "Constraints and Subsections" Cohesion: 0.40 Nodes (5): 2. Body, Constraints format, Invariant format, Optional subsections, Required subsections ### Community 108 - "Authorization Model for Agents" Cohesion: 0.40 Nodes (5): Authorization model — agent invocation, Common pitfalls, Quick decision table for consumers, Tier 1 — foundational agents (no `:` in agent_id), Tier 3 — consumer-defined agents (`:` in agent_id) ### Community 109 - "SSE Content Data" Cohesion: 0.40 Nodes (6): content, sse_id, data, thinking, data, event_type ### Community 110 - "Cancelled Message Handling" Cohesion: 0.22 Nodes (8): Concurrency, Constraints, Context, Data flow, Division of labor (library vs store), Integration points, Invariants, Out of scope (deferred — do NOT flag as drift) ### Community 111 - "Implicit Tool Call Narration" Cohesion: 0.50 Nodes (4): Implicit tool-call narration, `text_boundary` SSE event, `voice.classifier_markers` per-agent config, Voice Harness ### Community 112 - "Canonical Drift Calculation" Cohesion: 0.60 Nodes (4): main(), Path, SHA-256 hash of file contents, first 16 hex chars., sha256_16() ### Community 113 - "Agent Source vs Live Editing" Cohesion: 0.50 Nodes (3): agents/, Files, Source-vs-live: editing a file does not change the agent ### Community 114 - "Agent Context Discriminator" Cohesion: 0.50 Nodes (4): `AgentContext` discriminator, Amendment — AwaitingLLMFirstToken heartbeat (issue #201, INV-201-1..7), Mechanism note, Storage extension ### Community 115 - "SSE No ID Frame Handling" Cohesion: 0.50 Nodes (3): SSE frame with NO id line + arbitrary data (v0.8.1: keepalive shape)., empty_id_on_first_event_skipped [v0.8.1]: stream starts with an event ca, _sse_no_id_chunk() ### Community 117 - "MCP Tool Annotations on STEPS" Cohesion: 0.67 Nodes (3): 2.1.B — MCP tool annotations on STEPS, Example, Syntax ### Community 118 - "External Invariants Frontmatter" Cohesion: 0.67 Nodes (3): 2.1.D — `external_invariants:` frontmatter, Example, Syntax ### Community 119 - "Scenario Trace Test Categorization" Cohesion: 0.67 Nodes (3): 2.1.E — Scenario / trace / adversarial / property test categories, Examples, Syntax ### Community 120 - "OpenSpec Revisions Frontmatter" Cohesion: 0.67 Nodes (3): 2.1.G — OpenSpec-style `revisions:` frontmatter, Example, Syntax ### Community 121 - "Flexibility Annotation on STEPS" Cohesion: 0.67 Nodes (3): 2.1.H — `flexibility:` annotation on STEPS, Example, Syntax ### Community 122 - "Issue-Scoped Frontmatter Shape" Cohesion: 0.67 Nodes (3): 2.1.I — Issue-scoped frontmatter shape (codification), Issue-scoped frontmatter, Parser kind-aware branching (parser-side follow-up) ### Community 123 - "Plan Revision Huginn Pattern" Cohesion: 0.67 Nodes (3): 2.1.J — Plan revision idiom (Huginn pattern), Pattern, When to use ### Community 124 - "Admin Session Inspection Amendment" Cohesion: 0.67 Nodes (3): Amendment — Admin Session Inspection (issue #176), Function blocks, Invariants added ### Community 125 - "Pending Task Visibility Amendment" Cohesion: 0.67 Nodes (3): Amendment: Pending-Task Visibility (issue #119), New function blocks, New invariants ### Community 126 - "SSE Phase Events Amendment" Cohesion: 0.67 Nodes (3): Amendment — SSE phase events (issue #151, INV-053..INV-061), Integration notes, New invariants ### Community 127 - "Tier 3 Consumer-Defined Agents Amendment" Cohesion: 0.67 Nodes (3): Amendment — Tier 3 consumer-defined agents (issue #181, Phase 2.0), Invariants (Phase 2.0 scope), Persona-state observability (issue #204) ### Community 133 - "Community 133" Cohesion: 0.14 Nodes (9): _format_persona_detail(), _format_persona_header(), Update sticky header + Persona pane from a fresh snapshot. Called on bo, One-line persona summary for the sticky header widget. Shape: `agent_id · d, Multi-line persona detail for the Persona TabPane. Renders the full v0.28.0, header_compact_summary: agent_id · dominant_emotion · pad(P,A,D) · N emotions., header_singular_emotion: single emotion → '1 emotion active' (no 's')., header_no_emotions_drops_count: empty emotions list → no count suffix. (+1 more) ### Community 135 - "Community 135" Cohesion: 0.28 Nodes (7): build_app_from_env(), main(), Runnable entrypoint: serve the affect provider as an ASGI app. For the live neg, Build the affect ASGI app from environment config (testable seam)., Tests for the affect-provider serve entrypoint (ratatoskr.provider.serve). Only, test_build_app_from_env_builds_app_with_routes(), test_build_app_from_env_requires_heimdall_key() ### Community 143 - "Community 143" Cohesion: 0.04 Nodes (66): Raised on unexpected response status from /sessions endpoints. `body` is tr, SessionApiFailed, define_agent(), delete_agent(), _extract_error_code(), _extract_error_field(), _parse_tier3_agent_info(), patch_agent() (+58 more) ## Knowledge Gaps - **538 isolated node(s):** `Context`, `Data flow`, `Invariants`, `Out of scope`, `Constraints` (+533 more) These have ≤1 connection - possible missing edges or undocumented components. - **28 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ - **Why does `LocalAgentEntry` connect `Local Tier 3 Agent Index Management` to `TuiPresenterState Management`, `Parsed CLI Arguments Handling`, `Web Server Functional Tests`, `Stream Turn Endpoint Tests`, `Community 143`, `Session Creation Endpoint Tests`, `Server-Side End User ID Handling`, `Application Creation and Routing`, `Turn Submission Endpoint Tests`, `User Agent Versioning`, `Mock Client Factory for Persona State`, `Turn Cancellation Endpoint`, `Web Server Endpoint Handling`, `Monkey Patching for Local Agents`, `Agent Deletion and Authentication`, `Browser SSE Stream Parsing`?** _High betweenness centrality (0.081) - this node is a cross-community bridge._ - **Why does `SessionApiFailed` connect `Community 143` to `TuiPresenterState Management`, `Parsed CLI Arguments Handling`, `Agent Information Management`, `Stream Turn Rendering and Cancellation`, `Worldtree Session Client`, `Ratatoskr Application Argument Handling`, `Local Tier 3 Agent Index Management`, `Session Creation API`, `Web Server Endpoint Handling`?** _High betweenness centrality (0.044) - this node is a cross-community bridge._ - **Why does `create_app()` connect `Turn Cancellation Endpoint` to `Agent Information Management`, `Web Server Functional Tests`, `Stream Turn Endpoint Tests`, `Session Creation Endpoint Tests`, `Turn Submission Endpoint Tests`, `Server-Side End User ID Handling`, `Application Creation and Routing`, `User Agent Versioning`, `Mock Client Factory for Persona State`, `Web Packaging and CLI Argument Tests`, `Web Server Endpoint Handling`, `Monkey Patching for Local Agents`, `Agent Deletion and Authentication`, `Browser SSE Stream Parsing`?** _High betweenness centrality (0.044) - this node is a cross-community bridge._ - **Are the 51 inferred relationships involving `TuiPresenterState` (e.g. with `ParsedArgs` and `AgentInfo`) actually correct?** _`TuiPresenterState` has 51 INFERRED edges - model-reasoned connections that need verification._ - **Are the 75 inferred relationships involving `Done` (e.g. with `AgentInfo` and `ComposeResult`) actually correct?** _`Done` has 75 INFERRED edges - model-reasoned connections that need verification._ - **Are the 75 inferred relationships involving `Cancelled` (e.g. with `AgentInfo` and `ComposeResult`) actually correct?** _`Cancelled` has 75 INFERRED edges - model-reasoned connections that need verification._ - **Are the 73 inferred relationships involving `ParsedArgs` (e.g. with `AgentInfo` and `ComposeResult`) actually correct?** _`ParsedArgs` has 73 INFERRED edges - model-reasoned connections that need verification._