RFD-087: Session-Scoped Active Workspace
Open
Nobody has claimed this yet.
rfd
- Dominant language
- Rust
- Stars
- 16
- Forks
- 3
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 121
Description
Tracking issue for RFD-087: Session-Scoped Active Workspace.
This issue tracks the progress towards the complete implementation of RFD-087.
Tasks
- Phase 1: Replace the
storagesymlink with the per-root registry directory (~/.local/share/jp/workspace/<id>/roots/<root-key>.json) - Phase 1: Resolve
-w <id>against the roots registry (one live root → use it; many → picker/error; none → error) - Phase 1: Derive root liveness via the same-ID check (
<root>/.jp/.idequals<id>) - Phase 1: Seed the roots registry from any legacy
storagesymlink on first bootstrap - Phase 2: Move session resolution ahead of workspace construction in
jp_cli - Phase 2: Add the
jp_clibootstrap step that selects the concrete checkout root - Phase 2: Establish the workspace-root-as-child-cwd invariant for from-anywhere runs
- Phase 2: Add per-command workspace bootstrap requirement (
none/resolve/load), analogous toconversation_load_request - Phase 3: Add the user-global session store (
~/.local/share/jp/sessions/<source-key>.json) with history-shaped records mirroring RFD 020 - Phase 3: Implement
jp w use ?(picker),jp w use cwd(clear selection),jp w ls, andjp w showwith the sharedWorkspaceTargetgrammar - Phase 3: Implement
jp q-from-anywhere resolution (global session → workspace root → per-workspace conversation → run) - Phase 3: Implement source-split cleanup rules (
getsid/Hwndprocess-liveness;Envexistence-based via workspace-ID liveness) - Phase 4: Implement the interactive precedence ladder (explicit
-w→ sticky → conflict prompt → cwd → session-active → picker) - Phase 4: Implement the cwd-vs-active conflict prompt (
c/C/a/A/q) - Phase 4: Implement persisted sticky (
A) state on the session record and clearing viajp w use cwd - Phase 4: Implement non-interactive mode rule (ignore session-active workspace; error without explicit
-wor cwd workspace) - Phase 4: Implement reprompt-on-missing-root (recover via stored
workspace_id, expand roots registry, re-prompt among live checkouts)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with RFD-087, linked from the issue, to understand the session-scoped active workspace design and its four implementation phases. Then inspect the jp_cli entry point and the existing conversation_load_request pattern mentioned in the tasks. Done means all listed workspace resolution, session, command, interactive, and non-interactive behaviors are implemented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100