Skip to content

feat: isolate session history per Qoder CLI edition - #29

Merged
luoxuanzao merged 1 commit into
mainfrom
feat/session-edition-isolation
Aug 17, 2026
Merged

feat: isolate session history per Qoder CLI edition#29
luoxuanzao merged 1 commit into
mainfrom
feat/session-edition-isolation

Conversation

@luoxuanzao

@luoxuanzao luoxuanzao commented Aug 17, 2026

Copy link
Copy Markdown
Member

Summary

  • Session metadata in .qoderian/sessions mixed conversations from both CLI editions, so switching between qodercli (global) and qoderclicn (cn) left the other edition's sessions visible in the history list even though their message files live under a different config root (~/.qoder vs ~/.qoder-cn).
  • Conversations are now stamped with the owning edition on create/save; the conversation index filters by the active edition, switching editions force-closes all open tabs first (so users can't continue a previous-edition conversation), and legacy metadata is attributed/one-shot migrated by where its jsonl actually lives.

Verification

  • npm run typecheck
  • npm run lint
  • npm run test (3335 passed)
  • npm run build
  • npm run release:check
  • npm run audit:prod (0 vulnerabilities)
  • Tested affected qodercli behavior against a real CLI when applicable

Safety

  • No credentials, private vault content, internal URLs, or personal paths are included
  • User-visible changes are documented in CHANGELOG.md

Session metadata in .qoderian/sessions mixed conversations from both
CLI editions, so switching editions left the other edition's sessions
visible in the history list even though their message files live under
a different config root (~/.qoder vs ~/.qoder-cn).

- Stamp SessionMetadata/Conversation with the owning edition on create
  and save; updates keep the original stamp
- Filter the conversation index by the active edition; legacy metadata
  without a stamp stays visible unless its jsonl provably lives under
  the other edition's projects root
- One-shot startup migration attributes legacy metadata by history file
  location; sessions missing everywhere stay unstamped for re-evaluation
- Switching editions force-closes every open tab before activating the
  new edition so no previous-edition conversation stays open (closing
  the last tab spawns a blank one), then rebuilds the conversation index
- Add edition-aware session path/existence helpers and unit tests

Co-authored-by: QoderAI (Qwen 3.8 Max) <qoder_ai@qoder.com>
@luoxuanzao
luoxuanzao force-pushed the feat/session-edition-isolation branch from 06c10a0 to 6134a31 Compare August 17, 2026 16:54
@luoxuanzao
luoxuanzao merged commit 22ffd48 into main Aug 17, 2026
9 checks passed
@luoxuanzao
luoxuanzao deleted the feat/session-edition-isolation branch August 17, 2026 16:54
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