Skip to content

Releases: wtthornton/TappsMCP

v3.12.29

Choose a tag to compare

@wtthornton wtthornton released this 15 Jun 18:59

Patch: EPIC-113 Cursor loop metrics, dev-repo dogfood, tier-1 docs refresh, and CI quality workflow.

Added

  • EPIC-113 / TAP-4017–4019 — Cursor CallMcpTool unwrapping in loop_metrics transcript parsing; project-scoped edit detection (excludes /tmp scratch paths); legacy unparsed Cursor rows excluded from recurring_validation_skips gap math; compute_recent_edit_loop_stats for last-10 edit-loop window in usage.py.
  • EPIC-113 / TAP-4022.github/workflows/tapps-quality.yml PR workflow for tapps-mcp dev repo (validate-changed --quick).

Changed

  • Dev repo dogfood (EPIC-113).cursor/mcp.json and .mcp.json trimmed to developer NLT bundle (nlt-build, nlt-memory, nlt-linear-issues); deprecated wrapper skills removed; install_git_hooks: true; .cursor/rules/tapps-pipeline.mdc mandates /tapps-finish-task before 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 --audit validate_changed judge 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-mcp

v3.12.23

Choose a tag to compare

@wtthornton wtthornton released this 12 Jun 03:41

Fixed

  • Document judge gate bypass (TAP-3688–3691, #157)tapps_validate_changed runs configured blocking judges when git diff has zero scorable files. when_changed uses 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-studio on 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-mcp

v3.12.15

Choose a tag to compare

@wtthornton wtthornton released this 09 Jun 17:16

Summary

  • TAP-3199 — Unset TAPPS_METRICS_STORAGE defaults to brain when the bridge is healthy; falls back to dual when brain is unreachable.
  • TAP-3200 — CLI shell auth documentation for memory save/get and session-end handoff workflows.

Links

tapps-mcp v3.12.14

Choose a tag to compare

@wtthornton wtthornton released this 09 Jun 16:57

Summary

Hotfix for CLI memory save/get on HTTP brain deployments.

Fix

  • _create_cli_brain_bridge() uses BRAIN_PROFILE_SERVER (full) instead of BRAIN_PROFILE_HOOKS (coder), which hid memory_save and broke the documented handoff CLI fallback (TAP-3173 follow-up).

Install

uv tool install --reinstall --from /path/to/tapps-mcp/packages/tapps-mcp tapps-mcp

Full changelog: https://github.com/wtthornton/TappsMCP/blob/v3.12.14/CHANGELOG.md

tapps-mcp v3.12.13

Choose a tag to compare

@wtthornton wtthornton released this 09 Jun 16:47

Summary

Wave-2 brain consumer migration (TAP-1996/1997), session-transfer CLI hardening (TAP-3173–3175), and metrics/checklist brain telemetry.

Highlights

  • Brain metrics telemetryTAPPS_METRICS_STORAGE=local|dual|brain; entity_spec() on all KG emitters; brain floor 3.24.0 (ADR-0013)
  • Session transfer CLItapps-mcp session-end, BrainBridge memory 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-mcp

Full changelog: CHANGELOG.md

v3.12.0

Choose a tag to compare

@wtthornton wtthornton released this 28 May 01:00
f9b7329

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

Choose a tag to compare

@wtthornton wtthornton released this 18 May 23:13

Highlights

  • TAP-2115 — consume tapps-brain v3.19.0 /healthz phased payload + /v1/tools/list ETag
  • TAP-2129 — install-drift detection wired into tapps_session_start and tapps_doctor
  • TAP-2130 — post-merge git hook auto-runs uv sync --all-packages after 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-mcp

Not 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

Choose a tag to compare

@wtthornton wtthornton released this 05 May 04:50

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 stale http_mode_not_supported gate is dropped for save/get/delete/search/list/reinforce — these route through async BrainBridge methods. Remaining gate renamed to requires_in_process_store for 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_start is 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 by list_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" vs gate_miss). Doctor's 24h count excludes cross_project. linear_enforce_cache_gate can now be promoted from warn to block after a short soak.
  • TAP-1412: defensive auto-populate via new tapps-post-linear-list.sh PostToolUse hook. list_issues responses now write the snapshot cache automatically — no more empty cache despite sentinels.

Release infrastructure

  • TAP-1378 + TAP-1372: scripts/bump-versions.py is now the single source for version + AGENTS.md stamp + canonical hook manifest. New --check mode added as the CI gate.
  • TAP-1414: tapps_doctor and tapps_session_start now emit a loud degraded_checkers warning when ruff/mypy are missing on Python projects.

Templates / generators

  • TAP-1413: docs_generate_epic/docs_generate_story slug sanitizer accepts only [a-z0-9-]. write_to_disk=False is 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

Choose a tag to compare

@wtthornton wtthornton released this 03 May 19:51

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

Choose a tag to compare

@wtthornton wtthornton released this 03 May 19:40

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-mcp

Restart 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

Commits: a7250d6 (fix), 2e2f378 (version bump).