You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Per-parent-task delegation tree (cross-process linkage, scatter-gather roadmap #39 stretch /
closes #52). Each delegated sub-call is now linked back to the specific top-level task that
spawned it, across the process boundary. The CLI mints a task id per routed task; the
orchestrator-CLI adapter injects it as TANGLEBRAIN_TASK_ID into the orchestrator's environment
(only when the delegate tool is injected), the orchestrator forwards it to the MCP delegate child
it spawns, and run_delegate reads it back to stamp each delegate record's parent_task_id. Task
records gain a task_id, delegate records gain a parent_task_id (both written only when present,
so existing records and readers are unaffected). tanglebrain --stats and the rollup gain a by_parent grouping — "Linked to: N parent task(s)" — with sub-calls run outside a propagated task
grouped as unlinked. The linkage was manually verified live through the real claude→MCP-delegate
boundary (the env survives the orchestrator's subprocess hop; the parent and delegate records
shared the same id) — the orchestrator-forwards-env hop is a load-bearing assumption, not a
TangleBrain-enforced guarantee, so a delegate that loses the env degrades safely to unlinked (never
an error). This was the deferred half of the scatter-gather epic whose entry criterion was a
live-verification spike — now done.
Knob panel surfaces the delegation tree. The panel's "Delegated sub-tasks" card now shows a Linked to stat (N parent task(s), with any unlinked sub-calls noted) — GUI parity with the tanglebrain --stats rollup, so the per-parent-task linkage is visible in the panel, not just the
CLI. Read-only; no new endpoint (the data already rides view_stats's rollup payload).
Fixed
pyproject.toml package metadata carried the purged "cost-tiered / flat-rate subscriptions"
framing that the public-rollout neutralization scrubbed everywhere else (#42). Both the description
and the cost-tiered entry in keywords (→ local-llm) — the metadata rendered on the repo and any
package index — now match the neutral positioning used in the README and ARCHITECTURE.md: "A local-first, config-driven LLM router across OpenAI-compatible backends you own."
Internal
Gated live smoke check for delegate parent-task linkage (closes #55). A TANGLEBRAIN_LIVE-gated
test routes a delegation-inducing prompt through the real router → orchestrator → delegate_local
and asserts each delegate record's parent_task_id matches the parent task's task_id — a standing
guard for the load-bearing "orchestrator forwards env to the MCP child" assumption (it skips, never
fails, if the orchestrator doesn't delegate that run, since delegation is emergent). Test-only; gated
off in CI.