Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
ca20a56
chore(gbrain): pin worktree code source and add CLAUDE.md guidance block
iamcxa May 22, 2026
7c34bb7
feat(mcp): scaffold widget_server.py + mcp-widget-server CLI + WIDGET…
iamcxa May 22, 2026
bb6f126
fix(mcp): drop asyncio.run wrapper + typed @mcp.tool params (review f…
iamcxa May 22, 2026
bf665bb
feat(mcp): Day 1.5 widget HTML + schema_diff rich shape refactor
iamcxa May 22, 2026
79264d5
test(mcp): widget server tests + docs/mcp-widgets.md template (Day 2)
iamcxa May 22, 2026
60a9813
fix(cli): chdir to --project-dir + redirect traceback to stderr (Clau…
iamcxa May 22, 2026
18b5b09
fix(widgets): defensive structuredContent fallback + skip _warning key
iamcxa May 22, 2026
c83e971
fix(widgets): unwrap FastMCP \`{result: ...}\` wrapping in structured…
iamcxa May 22, 2026
f5e746d
feat(widgets): style with Claude design tokens for native dark-mode i…
iamcxa May 22, 2026
ce1b80a
refactor(widgets): idiomatic FastMCP — Pydantic models + CallToolResu…
iamcxa May 22, 2026
f55a282
refactor(widgets): use ext-apps SDK theme helpers + remove dead JS hacks
iamcxa May 22, 2026
f61388d
docs(widgets): mcp-widgets.md template update + Python vs TS note + t…
iamcxa May 22, 2026
b882697
fix(widgets): complete @media dark overrides for all text/background …
iamcxa May 25, 2026
1b09854
feat(cli): add `recce mcp-config-install` helper for Claude Desktop c…
iamcxa May 25, 2026
b150e1f
feat(widgets): add get_server_info widget (Phase A tier 1)
iamcxa May 25, 2026
4c0de22
feat(widgets): add list_checks widget (Phase A tier 2)
iamcxa May 25, 2026
89b724e
feat(widgets): add get_model widget (Phase A tier 2, Phase A complete)
iamcxa May 25, 2026
0f57922
fix(widgets): get_server_info support_tasks is Dict[str, bool] not Li…
iamcxa May 25, 2026
24a0680
fix(widgets): list_checks no-args pattern (empty Pydantic input broke…
iamcxa May 25, 2026
46251d5
feat(widgets): add query widget (Phase B tier 3 — first data-table wi…
iamcxa May 25, 2026
1aaa8a2
feat(widgets): add query_diff widget (Phase B tier 3 — two-env SQL co…
iamcxa May 25, 2026
7809a2f
feat(widgets): add value_diff widget (Phase B tier 3 — per-row value …
iamcxa May 25, 2026
16b6223
feat(widgets): add value_diff_detail widget (Phase B tier 3 — row-lev…
iamcxa May 25, 2026
43eb6b3
feat(widgets): add top_k_diff widget (Phase B tier 3, Phase B complete)
iamcxa May 25, 2026
d37aba6
feat(widgets): add histogram_diff widget (Phase C tier 4 — first char…
iamcxa May 27, 2026
be9e939
feat(widgets): add profile_diff widget (Phase C tier 4, Phase C compl…
iamcxa May 27, 2026
c7615a5
feat(widgets): add get_cll widget (Phase D tier 5 — first mini-graph)
iamcxa May 27, 2026
f8eea2c
feat(widgets): add impact_analysis widget (Phase D tier 5, Phase D co…
iamcxa May 27, 2026
eb923cf
fix(widgets): resolve SchemaChange class name collision shadowing sch…
iamcxa May 28, 2026
cc8e869
feat(widgets): add lineage_diff widget (Phase E first version, 10-nod…
iamcxa May 28, 2026
dd4e033
chore(claude): enable mcp-apps + mcp-server-dev plugins for widget dev
iamcxa May 29, 2026
f692f08
fix(mcp): intersect base+current columns in impact_analysis value_diff
iamcxa May 29, 2026
87f22fd
chore(gitignore): ignore dbt log dirs and hypothesis example cache
iamcxa May 29, 2026
b5e2a8c
Merge branch 'main' into iamcxa/recce-mcp-ui-integration
even-wei Jun 2, 2026
bf5705e
fix(mcp,cli): address Codex review feedback
iamcxa Jun 2, 2026
230af0f
style(test): satisfy black + isort on test_widget_server.py
iamcxa Jun 2, 2026
eeb5002
fix(cli): preserve pristine config backup on mcp-config-install re-run
iamcxa Jun 2, 2026
65ca073
fix(cli): address review - expand ~ and atomic write in mcp-config-in…
iamcxa Jun 2, 2026
dbde324
fix(mcp,widgets): address review - widget coordination robustness
iamcxa Jun 2, 2026
fcd7a6c
fix(track): address review - route --debug traceback to stderr
iamcxa Jun 2, 2026
c6d3506
fix(widgets): address review - HTML escaping + link hardening
iamcxa Jun 2, 2026
c533be9
fix(build,docs): address review - robust recce/data gitignore + doc sync
iamcxa Jun 2, 2026
d089e73
fix(widgets): address review - anchor widget HTML load on recce package
iamcxa Jun 2, 2026
d080819
docs(widgets): add TODO markers for deferred review follow-ups
iamcxa Jun 2, 2026
6fb3bff
Merge branch 'main' into iamcxa/recce-mcp-ui-integration
even-wei Jun 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"enabledPlugins": {
"hookify@claude-plugins-official": true
"hookify@claude-plugins-official": true,
"mcp-apps@claude-plugins-official": true,
"mcp-server-dev@claude-plugins-official": true
}
}
18 changes: 16 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,27 @@ build
.noai
.DS_Store

# Test / runtime artifacts (dbt run logs, hypothesis example cache).
# `logs/` (no leading slash) matches dbt log dirs at any depth,
# e.g. ./logs and integration_tests/dbt/logs.
logs/
.hypothesis/

# Dependabot CLI output
deps-*.yml

recce.yml
STATUS.md

# Ignore build artifacts from frontend
recce/data
# Ignore the embedded frontend build output under recce/data/, EXCEPT
# recce/data/mcp/*.html which are tracked SOURCE files (hand-authored widget HTML
# for MCP Apps). Ignore the directory contents, then re-include the mcp/ source
# subdir via negation. This catches nested build output (e.g.
# recce/data/lineage/index.html) that a flat per-extension allowlist would miss.
recce/data/**
!recce/data/.gitkeep
!recce/data/mcp/
!recce/data/mcp/**

# ignore Claude logs and plans at any nesting
**/docs/plans/**/*.md
Expand All @@ -45,3 +58,4 @@ output/*

.env*
!.env.example
.gbrain-source
37 changes: 37 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,40 @@ See `js/CLAUDE.md` for frontend conventions (Storybook imports, CSS color format
## Individual Preferences

- @~/.claude/recce.md

## GBrain Search Guidance (configured by /sync-gbrain)
<!-- gstack-gbrain-search-guidance:start -->

GBrain is set up and synced on this machine. The agent should prefer gbrain
over Grep when the question is semantic or when you don't know the exact
identifier yet.

**This worktree is pinned to a worktree-scoped code source** via the
`.gbrain-source` file in the repo root (kubectl-style context). Any
`gbrain code-def`, `code-refs`, `code-callers`, `code-callees`, or `query`
call from anywhere under this worktree routes to that source by default —
no `--source` flag needed. Conductor sibling worktrees of the same repo
each have their own pin and their own indexed pages, so semantic results
match the actual code on disk in this worktree.

Two indexed corpora available via the `gbrain` CLI:
- This worktree's code (auto-pinned via `.gbrain-source`).
- `~/.gstack/` curated memory (registered as `gstack-brain-<user>` source via
the existing federation pipeline).

Prefer gbrain when:
- "Where is X handled?" / semantic intent, no exact string yet:
`gbrain search "<terms>"` or `gbrain query "<question>"`
- "Where is symbol Y defined?" / symbol-based code questions:
`gbrain code-def <symbol>` or `gbrain code-refs <symbol>`
- "What calls Y?" / "What does Y depend on?":
`gbrain code-callers <symbol>` / `gbrain code-callees <symbol>`
- "What did we decide last time?" / past plans, retros, learnings:
`gbrain search "<terms>" --source gstack-brain-<user>`

Grep is still right for known exact strings, regex, multiline patterns, and
file globs. Run `/sync-gbrain` after meaningful code changes; for ongoing
auto-sync across all worktrees, run `gbrain autopilot --install` once per
machine — gbrain's daemon handles incremental refresh on a schedule.

<!-- gstack-gbrain-search-guidance:end -->
Loading
Loading