Skip to content

fix: devin sessions in the user's session database (0.0.70) - #82

Merged
okisdev merged 3 commits into
mainfrom
fix/devin-shared-sessions
Nov 3, 2026
Merged

okisdev merged 3 commits into
mainfrom
fix/devin-shared-sessions

Conversation

@okisdev

@okisdev okisdev commented Nov 3, 2026

Copy link
Copy Markdown
Owner

summary

  • routed devin jobs wrote their sessions into the companion's private home (<data>/home/.local/share/devin/cli/sessions.db), so usage readers and devin list never saw them. on two hosts the real database held no session since the engine joined while the private one held 14 and 2. the private home now links devin/cli/sessions.db to the real user's database ($XDG_DATA_HOME/devin/cli/sessions.db when absolute, else ~/.local/share/devin/cli/sessions.db), the same way it links the credentials file; logs, session locks, plugins, and every other XDG directory stay private.
  • the first companion call after the upgrade merges the private database into the real one under a record lock, then replaces it with the link. a missing real database is created with VACUUM INTO; an existing one gets only the sessions it lacks, across the session keyed tables and only the tables and columns both schemas share (an older real schema is upgraded by devin itself on its next open). a running devin job or a failed merge leaves the private store in place and the next call retries.
  • the job configuration also denies agent reads of the session database link.
  • release 0.0.70 across every plugin and the marketplace, with a changelog entry.

test plan

already verified

  • node --test tests/devin-home.test.mjs tests/devin-companion.test.mjs tests/devin-exec.test.mjs tests/devin-state.test.mjs: 96 pass, 0 fail
  • npm test: 1787 pass, 0 fail, 3 skipped; after the version bump, the version, engine, and acceptance suites: 51 pass
  • claude plugin validate passes for codex, grok, cursor, devin, fusion, and the marketplace root
  • probe on devin 3000.11.234 with a private HOME and sessions.db as a symbolic link: writes land in the target and no -wal or -shm file is left beside the link
  • real migration on this host from this checkout (devin-companion.mjs models): the real database went from 5 to 19 sessions, pragma integrity_check returns ok, and the private path is now only the link
  • live consult from this checkout afterwards (--model swe-2 --effort high): the new session and its token metrics are in the real database, and devin upgraded its schema from 17 to 20 migrations

reviewer should verify

  • after updating on a host with earlier devin jobs, the first /devin:task leaves <data>/home/.local/share/devin/cli/sessions.db as a link and devin list in a project the jobs ran in shows them

@okisdev
okisdev merged commit a6c12bf into main Nov 3, 2026
4 checks passed
@okisdev
okisdev deleted the fix/devin-shared-sessions branch November 3, 2026 03:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant