RFD Priorities
The active RFD backlog in priority order — highest first, including draft RFDs you want to prioritise finishing. Checking an RFD's box marks it in development: its tracking ticket is created if it doesn't exist yet and moved to In Progress; unchecking moves that ticket back to Todo. The box appears from Accepted onward, since that is where implementation begins. Every RFD above a milestone line targets that release. Implemented, superseded, and abandoned RFDs are not shown here; see the full RFD index for those.
See RFD 001 for the process behind these documents.
The active backlog in priority order. Top of the list is worked on first. Every RFD above a milestone line targets that release.
- JP gains Anthropic subscription auth with automatic fallback to API key billing when quotas exhaust.
- Allocate collision-free conversation IDs by scanning for occupancy and claiming the first unoccupied slot under a stable lock.
- Replace opaque attachments with typed MCP-aligned resources on ChatRequest at attachment turn, enabling deduplication and preventing cache invalidation.
- Request-response linking via persistent event IDs detects answer scope under structural edits.
- Introduces `-C` flag to selectively revert previously applied config sources using provenance tracking via claims maps.
- Extract the agent turn loop from jp_cli into a new jp_agent crate with trait-based I/O hooks.
- Hide conversations from default listings and expose conversation_id to tools for sub-agent workflows.
- Core Infrastructure milestone
- Redesign `jp init` to generate schema-driven config with interactive model/mode selection and curated commented fields.
- Add `jp completions` and `jp manpage` subcommands using clap_complete and clap_mangen for shell integration.
- Unify editor invocation through EditorBackend trait; add vendored reedline-based InlineReply widget for interrupt menu replies.
- Hardened interrupt model with predictable three-rung escalation, menus at every stage, and watchdog-bounded graceful shutdown.
- Global `--explain` flag traces config resolution through 9 layers, showing where each field value originates.
- Add --explain flag to jp query showing rendered system prompt, tools, attachments, and final request without calling the LLM provider.
- Shared option args, `conversation new` subcommand, `--no-activate` flag for scripting; updated `conversation fork` behavior.
- Add parent-child conversation relationships via metadata field, enabling fork lineage and hierarchical organization without nested directories.
- Nested workspace directories project conversation trees visually; user-local storage stays flat for durability.
- Named tool groups enable CLI shortcuts and exhaustive validation ensuring every tool is classified relative to a group.
- Adds typed access policy grants for tools to declare and enforce what workspace resources they can access.
- Internal Release v0.1 milestone
- Auto-refresh stale conversation titles periodically by re-running LLM generation when accumulated turns exceed a configured threshold.
- Scoped tool config access via `access.config` rules, with re-invocation on delta rejection and per-cycle commit buffering.
- Groups can declare default tool configuration, allowing tool inheritance without per-tool repetition.
- Adds group `overrides` section to enforce tool configuration that outlasts tool-level settings but yields to CLI flags.
- Unifies one-shot and long-running tool execution under a stateful protocol enabling multi-step interactive workflows.
- System notification queue delivers asynchronous subsystem notifications to the assistant by embedding them in existing conversation messages.
- Replace opaque tool output strings with typed content blocks (text, resource, question) mirroring MCP's CallToolResult model.
- Externalizes all content payloads to gzip-compressed SHA-256-addressed blob store; events.json carries only metadata references.