Conversation
Merge the session isolation fix into main.
* feat(mem): add Cognition Devin CLI session adapter Read ~/.local/share/devin/cli/sessions.db (WAL SQLite) through the existing zero-dependency parser. This is not trellis init --devin (Desktop/Cascade) and not Factory Droid. * refactor(mem): extract sqlite adapter kit and platform descriptors Share schema/warning/prepare-release helpers across OpenCode, ZCode, and Devin CLI instead of a third copy. Dispatch list/extract/search/collect through one platform table. Devin no longer falls back to max(node_id) when main_chain_id is missing. * fix(mem): parse Devin CREATE TABLE SQL that has -- comments Live sessions.db puts `-- node_id within this session's forest` between columns, so declaresColumn and parseColumnNames skipped parent_node_id and chat_message. Strip line comments before matching. --------- Co-authored-by: taosu <taosu@mindfold.ai>
…indfold-ai#611) Pi trellis_subagent spawns a headless `pi --mode json` child. With @gotgenes/pi-permission-system installed, ask-policy tools were fail-closed because the child had no UI and could not forward to the parent prompt. Pass PI_SUBAGENT_PARENT_SESSION from the serving heartbeat (not stale PI_SESSION_ID), set PI_SUBAGENT_CHILD=1 so pi-subagents cannot overwrite the parent id, and drop inherited PI_SESSION_ID so the child mints its own. Fixes mindfold-ai#610 Co-authored-by: Cursor Agent <cursoragent@cursor.com>
…ay (mindfold-ai#613) * fix(task): restore children already unlinked when archive stops mid-way `task.py archive` unlinks a parent's children one at a time before moving the parent out of the active tree. If a later child's `task.json` cannot be written the loop stops and returns 1 — correctly, since a child pointing at a parent that has left `.trellis/tasks/` is a dangling reference nothing repairs later. But the children unlinked *before* the failure keep `parent: null` while their parent is still in the active tree, which is the same lost link from the other side, and the printed remedy ("Fix the child, then run archive again") does not restore it: re-running only re-attempts the unlink. With two or more children this is reachable, and the parent's `children_progress` is wrong from then on. Snapshot each child's `parent` value before clearing it, and on failure put back every link this attempt removed. Restoring is best-effort: if a child cannot be written back it is named in the warning together with the `add-subtask` command that re-links it, so a half-restored state is never silent. Mirrored into `.trellis/scripts/common/task_store.py` (the two trees are required to be byte-identical). Regression test added next to the existing single-child case; it fails with `expected null to be '<parent>'` before this change. * fix(task): keep the first child snapshot so a duplicated entry cannot undo the restore Review feedback on the partial-unlink restore: a parent whose `children` list names the same child twice makes the unlink loop visit that child twice. The second visit read the value this loop had just cleared, so it recorded `parent: null` as that child's "original" link — and the restore then wrote that `null` back over the real parent, re-detaching the child the restore had just saved. Reached only when a *later, different* child then fails, but the outcome is the same lost link this change exists to prevent. Record only the first snapshot per child (keyed by its task.json), and drop that snapshot again when the clearing write itself fails — the link never came off in that case, so claiming it needs restoring would put a child in the warning that was never touched. Regression test for the duplicated-entry path added next to the existing one; it fails with `expected null to be '<parent>'` before this commit.
…ai#615) Point marketplace at 7d5298d (mem-recall --platform devin / sessions.db on the stable workflow pointer, not the DSH beta line). Docs skill-market pages match. No CLI version bump: 0.6.17 already ships the reader. Co-authored-by: taosu <taosu@mindfold.ai>
…ntity fix: retire developer identity and workspace runtime
|
Important Review skippedToo many files! This PR contains 391 files, which is 91 over the limit of 300. To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (391)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…e-developer-identity
…inding fix(session): resolve active tasks across linked worktrees
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal
This PR retires Trellis' global developer identity mechanism and fully retires the shared developer workspace mechanism from active runtime, installation, update, and platform workflows.
The current identity/workspace model creates substantial friction for parallel multi-task and multi-agent execution. It couples otherwise independent tasks, worktrees, logs, indexes, and session behavior to ambient developer state and shared mutable files. That model is aligned with an earlier human-programmer collaboration workflow, but is not compatible with the direction of parallel execution and future Agent Farm collaboration.
In practice, the existing mechanisms have caused repeated problems during Trellis usage: concurrent work can contend over workspace/index files, task progress becomes difficult to resume or reconcile, and execution units that should be independent are forced through implicit identity and shared state. The result is fragile and unnecessarily slow task progression.
Scope
Runtime and task lifecycle
--mine/-m,init --user/-u, record mode, and identity-dependent runtime APIs with explicit diagnostics.Workspace and historical-data retirement
.trellis/.developer,.trellis/workspace/**,.trellis/agent-traces/**, and existing backup snapshots in place, including arbitrary files and symlinks.Cross-platform and distribution assets
Code-graph dependency removal
Additional upstream-compatible fixes included
These additions are included because they were merged into the fork's current
mainwhile preserving the identity/workspace retirement boundary.Validation
git diff --checkpass.Design follow-up
The old developer/workspace mechanism did provide useful task indexing and log navigation. That capability remains valuable, but should be replaced with a concurrency-safe task record and on-demand historical recall model. Discussion #562 describes that direction; task-record retention and on-demand recall can be addressed by future Issues and PRs rather than retaining the current shared workspace implementation.
Closes #617