Releases: wtthornton/TappsMCP
Release list
v3.12.29
Patch: EPIC-113 Cursor loop metrics, dev-repo dogfood, tier-1 docs refresh, and CI quality workflow.
Added
- EPIC-113 / TAP-4017–4019 — Cursor
CallMcpToolunwrapping inloop_metricstranscript parsing; project-scoped edit detection (excludes/tmpscratch paths); legacy unparsed Cursor rows excluded fromrecurring_validation_skipsgap math;compute_recent_edit_loop_statsfor last-10 edit-loop window inusage.py. - EPIC-113 / TAP-4022 —
.github/workflows/tapps-quality.ymlPR workflow for tapps-mcp dev repo (validate-changed --quick).
Changed
- Dev repo dogfood (EPIC-113) —
.cursor/mcp.jsonand.mcp.jsontrimmed to developer NLT bundle (nlt-build,nlt-memory,nlt-linear-issues); deprecated wrapper skills removed;install_git_hooks: true;.cursor/rules/tapps-pipeline.mdcmandates/tapps-finish-taskbefore session end. - Tier-1 docs refresh — Architecture, INDEX cross-refs, memory tutorial, docs-mcp README, and README active-voice/style pass for v3.12.
Fixed
- EPIC-113 / TAP-4019 — Removed bogus blocking
--auditvalidate_changedjudge from tapps-mcp.tapps-mcp.yaml(document-consumer artifact).
Upgrade
uv tool install --reinstall --from packages/tapps-mcp tapps-mcp
uv tool install --reinstall --from packages/docs-mcp docs-mcp
# or from tag:
git checkout v3.12.29 && uv tool install --reinstall --from packages/tapps-mcp tapps-mcpv3.12.23
Fixed
-
Document judge gate bypass (TAP-3688–3691, #157) —
tapps_validate_changedruns configured blocking judges when git diff has zero scorable files.when_changeduses full git diff paths. Grep judges ignore comment-only matches. Judge runner exceptions return structured error results. -
CI guardrails — Tool-description budget job no longer fetches private
nlt-report-studioon every run.
Added
- Integration smoke tests for document consumer validate_changed + judge paths.
Upgrade
uv tool install --reinstall --from packages/tapps-mcp tapps-mcp
# or from tag:
git checkout v3.12.23 && uv tool install --reinstall --from packages/tapps-mcp tapps-mcpv3.12.15
Summary
- TAP-3199 — Unset
TAPPS_METRICS_STORAGEdefaults tobrainwhen the bridge is healthy; falls back todualwhen brain is unreachable. - TAP-3200 — CLI shell auth documentation for
memory save/getandsession-endhandoff workflows.
Links
tapps-mcp v3.12.14
Summary
Hotfix for CLI memory save/get on HTTP brain deployments.
Fix
_create_cli_brain_bridge()usesBRAIN_PROFILE_SERVER(full) instead ofBRAIN_PROFILE_HOOKS(coder), which hidmemory_saveand broke the documented handoff CLI fallback (TAP-3173 follow-up).
Install
uv tool install --reinstall --from /path/to/tapps-mcp/packages/tapps-mcp tapps-mcpFull changelog: https://github.com/wtthornton/TappsMCP/blob/v3.12.14/CHANGELOG.md
tapps-mcp v3.12.13
Summary
Wave-2 brain consumer migration (TAP-1996/1997), session-transfer CLI hardening (TAP-3173–3175), and metrics/checklist brain telemetry.
Highlights
- Brain metrics telemetry —
TAPPS_METRICS_STORAGE=local|dual|brain;entity_spec()on all KG emitters; brain floor 3.24.0 (ADR-0013) - Session transfer CLI —
tapps-mcp session-end, BrainBridgememory save/get, aligned handoff/continue skills - Consumer docs — brain wiring guide + TAP-1997/1998 migration guide
Install
uv tool install --reinstall --from /path/to/tapps-mcp/packages/tapps-mcp tapps-mcp
uv tool install --reinstall --from /path/to/tapps-mcp/packages/docs-mcp docs-mcpFull changelog: CHANGELOG.md
v3.12.0
Release v3.12.0 — 2026-05-27
See CHANGELOG.md for the full release notes.
Headline ships:
- TAP-2017: compaction-boundary memory rehydration
- TAP-1995 (internal-breaking): deleted tapps_core/memory/ re-export shims
- TAP-1993/1994: tapps_memory reduced to session-lifecycle actions
- TAP-1923: pre-push brain-version-floor gate (>=3.18.0)
- TAP-2014: hive-elevation safety gate
- TAP-2468: split validate_changed.py by responsibility
- TAP-2011: Agent Gateway pattern
- 17+ stories total over 119 commits since v3.10.14
tapps-mcp v3.10.14
Highlights
- TAP-2115 — consume tapps-brain v3.19.0
/healthzphased payload +/v1/tools/listETag - TAP-2129 — install-drift detection wired into
tapps_session_startandtapps_doctor - TAP-2130 — post-merge git hook auto-runs
uv sync --all-packagesafter lockfile-touching merges - TAP-2132 — pin tapps-brain by release tag rather than commit SHA
- Docs: corrected tool counts, agent/skill listings, removed stale claims across user-facing docs
Install
Global install from local checkout:
uv tool install --reinstall --from packages/tapps-mcp tapps-mcp
uv tool install --reinstall --from packages/docs-mcp docs-mcpNot published to PyPI — tapps-mcp is a local-install tool (see .claude/rules/repo-workflow.md).
tapps-mcp v3.10.9 — Linear cache + memory CRUD + session-start perf
Highlights
13 tickets shipped this release, including one Priority-1 user-flagged fix.
Memory & federation
- TAP-1421 (P1):
tapps_memory(action="save", ...)now works in HTTP-bridge mode. The stalehttp_mode_not_supportedgate is dropped for save/get/delete/search/list/reinforce — these route through async BrainBridge methods. Remaining gate renamed torequires_in_process_storefor the actions (consolidate, federate_*, etc.) that genuinely depend on local MemoryStore methods. - TAP-1375: dead SQLite persistence edge-case tests deleted (ADR-0008). The shim re-exports tapps-brain's MemoryStore — those tests belong upstream.
Performance
- TAP-1379:
tapps_session_startis now memoized per-session_id. Today's 307 redundant calls would collapse to 29 (one per session) with the cache + hook sentinel. Saves ~75s of session-start latency + Brain probes per day.
Linear cache hooks
- TAP-1374: bucket-alias unlock —
snapshot_get(state="open")followed bylist_issues(state="started")no longer self-trips the cache gate. Post-snapshot writes alias sentinels for every open-bucket member. - TAP-1411: cross-project cache-gate violations tagged distinctly (
category="cross_project"vsgate_miss). Doctor's 24h count excludes cross_project.linear_enforce_cache_gatecan now be promoted fromwarntoblockafter a short soak. - TAP-1412: defensive auto-populate via new
tapps-post-linear-list.shPostToolUse hook.list_issuesresponses now write the snapshot cache automatically — no more empty cache despite sentinels.
Release infrastructure
- TAP-1378 + TAP-1372:
scripts/bump-versions.pyis now the single source for version + AGENTS.md stamp + canonical hook manifest. New--checkmode added as the CI gate. - TAP-1414:
tapps_doctorandtapps_session_startnow emit a louddegraded_checkerswarning when ruff/mypy are missing on Python projects.
Templates / generators
- TAP-1413:
docs_generate_epic/docs_generate_storyslug sanitizer accepts only[a-z0-9-].write_to_disk=Falseis now the default — Linear is canonical.
Hardening
- TAP-1377: session-state files validate host/os/cwd before loading; cross-machine pollution (e.g. Windows session state on a Linux box) is discarded with a structured warning.
- TAP-1376: prior backlog plan replaced with a redirect to the linear-read skill — the static plan had drifted out of date.
Closed without code change
- TAP-1373: non-slow CI was already green from prior session work.
Install / pickup
This repo doesn't publish to PyPI/npm. Existing dev machines:
cd <local tapps-mcp checkout>
git pull
uv tool install --reinstall .
Consumer projects pick up template changes on next tapps_upgrade (the version stamp drives the smart-merge).
🤖 Generated with Claude Code
tapps-mcp v3.10.2 — TAP-1336 init/upgrade brain env
Patch: TAP-1336 init/upgrade emits brain memory env block
Companion to v3.10.1. The previous patch made the runtime diagnostic precise; this one fixes the upstream root cause: `tapps_init` / `tapps_upgrade` was generating `.mcp.json` with only `TAPPS_MCP_PROJECT_ROOT` in the tapps-mcp env block, leaving every brand-new consumer install with no brain auth, no URL, and no project ID — leading to `brain_auth_token_missing` on first session start.
`_build_server_entry` now emits:
```json
"env": {
"TAPPS_MCP_PROJECT_ROOT": ".",
"TAPPS_MCP_MEMORY_BRAIN_HTTP_URL": "http://localhost:8080",
"TAPPS_MCP_MEMORY_BRAIN_AUTH_TOKEN": "${TAPPS_BRAIN_AUTH_TOKEN}",
"TAPPS_MCP_MEMORY_BRAIN_PROJECT_ID": ""
}
```
The auth token uses `${...}` substitution rather than a literal value, so generated `.mcp.json` files are safe to commit to consumer repos. The existing merge logic preserves any user-customized values when running `tapps_upgrade` on an existing install.
To pick this up in existing consumer projects
```bash
In the consumer repo:
tapps-mcp upgrade
```
Existing keys are preserved; only missing brain keys are added.
Upgrade
```bash
uv tool install --reinstall /packages/tapps-mcp
```
Scope
- tapps-mcp: 3.10.1 → 3.10.2
- tapps-core: unchanged at 3.10.0
- docs-mcp: unchanged at 3.10.0
Commit: 79ef6e3.
tapps-mcp v3.10.1 — TAP-1336 brain-auth diagnostic
Patch: TAP-1336 brain-auth diagnostic
When tapps-brain returned 401/403 from the auth probe, tapps_session_start previously emitted a single generic brain_auth_failed code with a "Set TAPPS_BRAIN_AUTH_TOKEN" hint — even when the agent had already done so but Claude Code's .mcp.json ${...} substitution silently failed.
_detect_brain_auth_failure now classifies the configured token (without leaking it) into three states and emits a distinct error code + actionable next_steps for each:
| Token state | New error code | What it means |
|---|---|---|
${TAPPS_BRAIN_AUTH_TOKEN} (literal) |
brain_auth_token_unsubstituted |
Claude Code didn't substitute the env-var reference. Fix: export before launching, or hardcode in .mcp.json. |
None / empty |
brain_auth_token_missing |
No Bearer token reached the subprocess. Fix: set in .mcp.json env block. |
| Real token, rejected | brain_auth_failed (unchanged) |
Token rotated/revoked/wrong. Fix: rotate on the brain side. |
Upgrade
uv tool install --reinstall <local-path>/packages/tapps-mcpRestart any open Claude Code sessions to pick up the new server.
Scope
- tapps-mcp: 3.10.0 → 3.10.1
- tapps-core: unchanged at 3.10.0
- docs-mcp: unchanged at 3.10.0