Releases: sebmartin/ai-workspace-plugin
Release list
v2.3.0 — README discipline, skill refactor, resume fixes
What's new in v2.3.0
README discipline
Thread READMEs are now a lean index — not a content dump. A fixed-section template (replacing the old Problem/Current State/Desired State/Existing Infrastructure/Resolved Questions/Notes sections) with explicit write rules: no new sections, everything substantive goes in a linked artifact or decision. Quick Resume decay rules keep the thread summary tight (5 ideal / 10 max next steps, rolling 3–5 recent progress entries).
Threads skill refactor
SKILL.md split from a 461-line monolith into a 154-line lean index with 7 command reference files loaded on demand — reducing token cost for every non-resume invocation. Resume stays inline since it runs every session.
Resume fixes
Based on analysis of observed resume failures:
get_thread_statusrenamed toresume_threadand now returns the full README (not just Quick Resume), giving the LLM the complete map in one call- Session frontmatter (date, summary, keywords, next_context) loaded with a recency gradient on resume for richer context without eager file reads
- Pre-work confirmation checkpoint before any planning or recommendation
- Patching/confusion correction rules
Save fixes
/threads save now executes as explicit mandatory steps: README Quick Resume update, README hygiene checks, session log creation/update, session linking. On save, unlogged decisions from the conversation are surfaced and batched into a single prompt.
New get_skill_file MCP tool
Replaces get_template for reading any plugin file (templates and command references) without triggering filesystem permission prompts.
Global permissions setup
When setting a workspace for the first time, the skill offers to write allowlist entries to the global CLI configuration file — no more per-session permission prompts.
CLI detection fix
Detection now uses the LLM's own knowledge of its config file location rather than printenv CLAUDE_PLUGIN_ROOT (which isn't available in bash commands).
Other fixes
- Codex skill invocation is
$threadsnot/threads - MCP fallback rule clarified: fix failures, don't work around them with raw file reads
- Decision logs created immediately with README links — no orphaned files
Thread Archive Feature
Archive old threads to searchable archives and restore them with automatic session capture.
Features
- Archive threads: Compress completed threads to
archive/{YYYY}-{name}.tar.gzwith a searchable.mdsummary containing dates and keywords - Restore with history: Brings archived threads back to
threads/and automatically writes asessions/{YYYYMMDD}-restored.mdcapturing the archive-time summary as thread history - Archive fallback: Resume command automatically checks archives if an active thread isn't found
- Inspect without restoring: Peek into an archive with
/threads inspectto review before restoring - Security: Rejects symlinks during archive (prevents leaking out-of-thread paths), validates extraction paths, requires Python 3.12+
Breaking Changes
- Requires Python 3.12+ (for
tarfile.extractall(filter="data")support) - Dropped zip archive fallback; always uses tar.gz
Commands
| Command | Purpose |
|---|---|
/ai-workspace:threads archive <name> |
Archive a completed thread |
/ai-workspace:threads restore <base> |
Restore an archived thread |
/ai-workspace:threads list-archived |
Show all archived threads with keywords |
/ai-workspace:threads inspect <base> |
Extract an archive to archive/tmp/ for inspection |
/ai-workspace:threads purge-tmp |
Clean up temporary archive extractions |
v2.0.1
What's new
- Session-start hook: Claude is reminded at session start to use the threads skill/MCP tools instead of raw Bash when working with threads
- Artifact registration: Every artifact is now required to be registered immediately in both the session log and the thread README, with a descriptive link
- Decision logging: README decision links now include a one-line description
v2.0.0 - Use threads from any directory
The most requested feature since launch: you no longer have to cd into your workspace to use your threads. Resume a thread while working in any repo, and the plugin resolves your workspace automatically.
This unlocks the workflow many of you were already trying to do -- plan in a thread, then switch to a project repo to execute, without losing the context you built up. Two ways to work, one set of threads.
Example
Start in your workspace. Create a thread and think through a design:
cd ~/my-workspace
claude
> create a thread called api-redesignOver a few sessions you brainstorm the approach, debate trade-offs, log decisions, and save your progress. The thread captures everything: goals, context, decisions made, next steps.
> let's switch from REST to GraphQL for the internal API
> log that decision
> save the thread
A few days later, you're ready to build. Open Claude in the project repo and pick up where you left off:
cd ~/my-project
claude
> resume the api-redesign thread
# → (Using threads from /Users/you/my-workspace)
# Claude now has the thread context AND your repo's codeClaude knows the decisions you made, the trade-offs you considered, and what's next. You're writing code with full context, not starting from scratch.
The first time you do this, the plugin asks where your workspace is and remembers it. That's it.
What's new
- Remote workspace resolution -- Run
/ai-workspace:threadsfrom any directory. The plugin checks for a localthreads/folder first, then falls back to your configured default workspace. set-workspacecommand -- Change your default workspace at any time with/ai-workspace:threads set-workspace <path>.- Restructured README -- Documents two modes of working: from the workspace (brainstorming, planning, architecture) and from a repo (executing with thread context).
Under the hood
- New MCP tools:
resolve_workspaceandset_default_workspace - Config persisted via
${CLAUDE_PLUGIN_DATA} - 11 new tests (21 total)