diff --git a/docs/superpowers/plans/2026-05-08-canonical-chat-smoke-fixes-a-b.md b/docs/superpowers/plans/2026-05-08-canonical-chat-smoke-fixes-a-b.md new file mode 100644 index 000000000..b365b76ec --- /dev/null +++ b/docs/superpowers/plans/2026-05-08-canonical-chat-smoke-fixes-a-b.md @@ -0,0 +1,530 @@ +# Canonical `examples/chat` Demo — Smoke fixes A+B — Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Land Findings A (palette dropdowns ignore signal value on initial render) and B (reasoning blocks have empty summary) as a single quick-fix PR. + +**Architecture:** Three independent edits — palette template `[selected]` bindings (Angular), python graph `reasoning.summary='auto'` kwarg (Python), adapter `extractReasoning` extension to read summary items (libs/langgraph). Each is small and testable in isolation. + +**Tech Stack:** Angular 21 (standalone, signals, OnPush), Python 3.12 (uv, langgraph, langchain-openai), TypeScript (libs/langgraph + vitest spec). + +**Spec:** `docs/superpowers/specs/2026-05-08-canonical-chat-smoke-fixes-a-b-design.md` + +**Branch:** `claude/examples-chat-smoke-fixes-a-b`, branched from `origin/main`. + +**Hard constraint:** Never reference hashbrown / copilotkit / chatgpt / chatbot-kit / claude in code, comments, commits, PR bodies, or docs. + +--- + +## File Structure + +``` +examples/chat/ +├── angular/src/app/shell/control-palette.component.html # +2 [selected] bindings +└── python/src/graph.py # +1 kwargs key + +libs/langgraph/src/lib/internals/ +├── stream-manager.bridge.ts # extend extractReasoning +└── stream-manager.bridge.spec.ts # +1 unit test (TDD) +``` + +Total ≈ 25 LOC. ~4 commits. + +--- + +## Phase 0 — Branch creation + +### Task 0.1: Create implementation branch + +- [ ] **Step 1: Branch from origin/main** + +```bash +cd /Users/blove/repos/angular-agent-framework +git fetch origin main +git checkout -b claude/examples-chat-smoke-fixes-a-b origin/main +``` + +- [ ] **Step 2: Verify** + +```bash +git rev-parse --abbrev-ref HEAD +``` + +Expected: `claude/examples-chat-smoke-fixes-a-b`. + +```bash +git log --oneline -1 +``` + +Expected: a commit on `origin/main`. + +--- + +## Phase 1 — Finding A: palette dropdown initial value + +### Task 1.1: Add `[selected]` bindings to palette dropdowns + +**Files:** +- Modify: `examples/chat/angular/src/app/shell/control-palette.component.html` + +- [ ] **Step 1: Locate the Model dropdown** + +Open `examples/chat/angular/src/app/shell/control-palette.component.html`. Find the Model select: + +```html + +``` + +Replace the `