feat(integrations): give Tau persistent Basic Memory continuity - #1489
feat(integrations): give Tau persistent Basic Memory continuity#1489phernandez wants to merge 4 commits into
Conversation
Signed-off-by: phernandez <paul@basicmachines.co>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3bd40acda5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ceipts Signed-off-by: phernandez <paul@basicmachines.co>
|
@codex review |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Signed-off-by: phernandez <paul@basicmachines.co>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 40f124c6ea
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: phernandez <paul@basicmachines.co>
|
@codex review |

Why
Refs #1487. The integration must recover work across sessions and compaction, not merely expose a curated tool subset. This revision replaces the initial preview's queued checkpoint instructions with actual awaited writes and durable receipt reconciliation.
What Changed
/bm-orient,/bm-checkpoint,/bm-remember,/bm-status, explicit destination/capture controls, common credential masking, actionable failure notifications.Implementation Details
bridge.pyruns short-lived discovery in a joined thread during synchronous setup, then starts a persistent MCP owner task at session start. Active calls share it; shutdown cancels requests and closes contexts in the owner task. Every restart gets a fresh stop event (fixes the initial Codex finding).continuity.pyselects actual persisted public messages, not synthetic summaries, private reasoning, tool payloads, or custom recall context. It incrementally synthesizes against the prior handoff, with chunk limits and an overall deadline. Before remote writes it records an intent; confirmation requires a validated BM result and durable Tau receipt. Notes stay ordinary shared-graph Markdown.results.pypreserves native text/images, structured content, errors, and explicit serialization of other MCP blocks.privacy.pymasks common credential forms, not arbitrary secrets.Configuration is user-level or explicitly selected. It never guesses a shared/team destination, changes credentials, creates projects, installs dependencies, or patches installed Tau.
Upstream dependency
Implemented and opened separately: huggingface/tau#683, pinned here at
f41242532a2e55c6ee7f96b71d6949d3db9c172d.It supplies consistent awaited extension compaction callbacks, deep-copied active-branch entries, bounded tool-free active-model synthesis, zero-turn reference insertion, and lifecycle notifications for in-place tree branching. Stock Tau 0.4.1 lacks these APIs and fails with an actionable requirement. The isolated package environment uses the pinned fork; the installed user Tau remains untouched. HTTPX is constrained to the tested 0.x API/SOCKS extra rather than its development release.
Testing
just fast-check: passed, including root Ruff/format andjust typecheck.just package-check: passed across all consolidated packages; Tau target runs Ruff, format, ty and 49 hermetic tests (2 real-BM tests opt-in).just doctor: passed in its temporary project.integrations/tau,BM_TAU_TEST_COMMAND=<worktree>/.venv/bin/bm uv run --with pytest-cov pytest --cov=tau --cov-report=term-missing -q: 51 passed, 100% statement coverage across all five integration runtime modules.git diff --check: passed.Tests use actual Tau CodingSession, storage, stdio MCP, all four compaction entry points, interrupted writes/receipts, cancellation, privacy controls, actual session reload and branch/resume. A headless Textual test submits
/reloadthrough the TUI. Real-BM tests write/read/search, capture transcripts, save checkpoints, compact, restore references, reload and resume using temporary HOME/configuration/notes, local routing, no auto-updates/semantic downloads/telemetry.Risks / Rollout
Reviewer Guide
Read
integrations/tau/DESIGN.mdand README for the lifecycle/privacy contract, thencontinuity.pyfor state/receipts andbridge.pyfor ownership. The implementation and upstream changes remain separate PRs. No merge is authorized.