Repository navigation
fix(ruflo-console): key the mission ledger by project (#4237) - #4242
Merged
ruvnet merged 1 commit intoOct 17, 2026
Merged
Conversation
The ledger was stored under one machine-wide key, so the active mission of one project was shown, and injected into the prompt, in every other project, and sessions in different projects overwrote each other's ledger. Store it under mission-ledger:<cwd> like the UI view, record cwd on new missions, and read the old shared key only as a fallback without adopting its active mission or missions recorded for another project.
aepod
added a commit
to weave-logic-ai/ruflo
that referenced
this pull request
Oct 19, 2026
…project (ruvnet#4254) ruvnet#4242 keyed the mission ledger by project, but a project with no ledger of its own still took in every mission from the old shared key that had no cwd (all of them, since cwd was only recorded from ruvnet#4237 on), and the first save copied them into the project's own key. - Missions with no project are offered in Mission Control (adopt here / not this project) instead of taken in; until adopted they are not picked, handed to Claude or put in the prompt. - Adopt stamps the project's cwd and removes them from the shared key; dismiss is remembered per project. - A shared-key mission recorded for this project is taken in and pruned. - A 0.44.3 copy with no project in a project key is offered the same way. - loadLedger clears missions and active when the State's cwd changes (session.start reuses the State). - Ledger storage moves to hooks/mission-ledger.ts (mission-control.ts would pass 500 lines); mission-control.ts re-exports it unchanged. - Console 0.44.4: ruvnet#4242 shipped under 0.44.3, so plugin update never offered it. Co-Authored-By: RuFlo <[email protected]>
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.
Fixes #4237
Problem
ruflo-console keeps the per-project UI view under
storeKeyOf(cwd), but the mission ledger used the fixed keymission-ledger. The plugin store is one file per machine, so:missionContexton (the default) its active task was injected into B's prompt;Fix
ledgerKeyOf(cwd)returnsmission-ledger:<cwd>.saveLedgerandloadLedgeruse it. Ifcwdis unknown (''), they fall back to the old key, as before.cwd(MissionRecord.cwd, optional). On load, missions recorded for another project are skipped.active(that was simply whichever project wrote last) or missions recorded for another project. The first save then writes the project's own key. The old key is left untouched for other projects.Tests
tests/mission-ledger-per-project.spec.ts: B does not see A's active mission, two projects keep separate ledgers, and the legacy fallback does not adoptactive. All 3 fail onmainand pass with this change.tests/adr-integration.spec.tsnow reads the saved ledger fromledgerKeyOf(state.cwd), because its world sets a realcwd.npx vitest run plugins/ruflo-console: 26 failures both with and without this change (environment-specific files in my partial checkout). No new failures.tsc --noEmit -p plugins/ruflo-consolereports nothing in the changed files.AI assistance
An AI coding agent (Grok Bot) helped write this change. I reproduced the bug, reviewed the diff, and ran the tests.