feat(integrations): give Tau persistent Basic Memory continuity - #1489
Conversation
Signed-off-by: phernandez <paul@basicmachines.co>
|
@codex review Please review the implemented preview for concrete correctness and lifecycle issues. Full normal/manual compaction support remains blocked upstream (huggingface/tau#506) and the PR is intentionally draft; checkpoint requests are not claimed to be durable-write acknowledgements. |
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 |
|
Codex Review: Didn't find any major issues. Hooray! 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". |
|
Upstream dependency update: Tau #683 is superseded by huggingface/tau#687, from the Basic Machines organization fork (https://github.com/basicmachines-co/tau). Same tested commit f41242532a2e55c6ee7f96b71d6949d3db9c172d; no implementation changes. Dependency URL/lock and in-repository references still need migration to the organization fork. |
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.