dcdpr / dcdpr/jp

RFD-087: Session-Scoped Active Workspace

Open
#793 0 comments 0 reactions 0 assignees View on GitHub

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 storage symlink 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/.id equals <id>)
  • Phase 1: Seed the roots registry from any legacy storage symlink on first bootstrap
  • Phase 2: Move session resolution ahead of workspace construction in jp_cli
  • Phase 2: Add the jp_cli bootstrap 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 to conversation_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, and jp w show with the shared WorkspaceTarget grammar
  • Phase 3: Implement jp q-from-anywhere resolution (global session → workspace root → per-workspace conversation → run)
  • Phase 3: Implement source-split cleanup rules (getsid/Hwnd process-liveness; Env existence-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 via jp w use cwd
  • Phase 4: Implement non-interactive mode rule (ignore session-active workspace; error without explicit -w or 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.