- Updated test cases in index-contract.test.ts and integration-stdio.test.ts to reflect new tool names with "bindery_" prefix.
- Modified README.md and manifest.json to document and register new tool names.
- Adjusted check-tool-parity script to ensure consistency across all surfaces for the new tool naming convention.
- Updated VS Code extension documentation to reflect changes in available MCP tools.
- Deleted chapter status template function and related code from tools.ts.
- Removed chapter status update and get functions, including their tests.
- Updated README and manifest files to reflect the removal of chapter status features.
- Cleaned up related commands and interfaces in the VS Code extension.
- write .agents/skills/<skill>/SKILL.md when agents target is selected
- apply parity updates in MCP, VS Code extension, and Obsidian plugin
- add/extend ai-setup tests for agents skill generation
Add a confirmation-gated inbox triage workflow over Notes/Inbox.md:
- inbox_process (read-only): enumerates loose inbox items with stable
numbers and returns a structured triage proposal plus the destination
tools to route them. Never moves, deletes, or categorizes.
- inbox_resolve (destructive): removes already-routed items by their
item numbers after the user confirms, preserving other items and the
heading/intro.
A shared deterministic parser splits Inbox.md on `## ` headings, or on
blank-line blocks when there are no headings, so item numbers stay stable
between process and resolve.
- tools + registration (mcp-ts), VS Code + Obsidian commands, LM tools,
MCPB manifest, and command/tool parity rows (44 tools, 38 commands)
- guidance update: rough/unsorted/pasted material routes to the Inbox and
is triaged with inbox_process/inbox_resolve, not dumped into memory
(memory skill, generated assistant templates, generated README, public
docs); bumped touched template versions
- inbox scaffold intro references the triage tools
- tests for inbox_process / inbox_resolve incl. empty state, heading vs
blank-line splitting, out-of-range rejection, and intro preservation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add session_focus_get and session_focus_update over an ephemeral
SESSION.md working-state file, and split durable user preferences into
a separate user-owned PREFERENCES.md. Drops the COWORK.md default, which
collided with Claude Cowork's own convention; the two fixed, role-named
files are harness-independent and let generated skills reference a stable
SESSION.md token.
session_focus_update is section-aware: it touches only the neutral
SESSION.md sections (Current Focus, Next Actions, Open Questions, Handoff
Notes) and preserves everything else. PREFERENCES.md is scaffolded once
and never tool-written.
- tools + registration (mcp-ts), settings defaults + getPreferencesFile
- init_workspace scaffolds both files and persists preferencesFile;
existing workspaces keep their explicit sessionFile (no migration)
- VS Code + Obsidian commands, LM tools, MCPB manifest, parity rows
- updated skills, generated assistant templates, and public docs;
bumped touched template versions
- tests for session_focus and the split scaffold
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Introduced commands for managing notes: list, get, create, and append.
- Added character management commands: list, get, create, and update.
- Implemented arc management commands: list, get, create, and update.
- Enhanced AI setup to include new character and arc functionalities.
- Updated package.json to reflect new commands and tools.
- Improved workspace settings handling for story, notes, and arc folders.
- Added input validation and prompts for user interactions in commands.
fix: refactor lineBoundaryWrap function and improve startReviewMarkerCommand logic in extension.ts
refactor: simplify invoke functions in mcp.ts by removing async where unnecessary
- Added descriptive comments to the require statements for loading mcp-ts tools.
- Changed the return type of writeMcpJson to void, removing unnecessary async/await.
- Updated the call to writeMcpJson in registerMcpCommand to reflect the new return type.
- Added bindery-merge as a workspace in package.json.
- Updated vscode-ext to include @bindery/merge as a dependency.
- Refactored merge.ts to re-export merging functionalities from @bindery/merge, removing legacy code.
- Simplified tool-locate.ts by re-exporting tool location logic from @bindery/merge, enhancing code reuse and maintainability.
Co-authored-by: Copilot <copilot@github.com>
- review-markers: case-insensitive scan filter (drop 'Bindery: Review' substring pre-check)
- review-markers: emit 'line N (empty region)' for empty regions instead of inverted 'lines N-(N-1)'
- get_review_text: detect non-zero git exit (e.g. outside a repo) as git-unavailable and emit explicit notice
- get_review_text: still consume markers when autoStage=true even if git is unavailable
- vscode: review marker commands require markdown languageId and snap markers to line boundaries
- aisetup: always force-overwrite the bindery capabilities README
- templates: drop duplicate git_snapshot row in bindery-readme; refresh get_review_text description in CLAUDE.md (versions: claude 10->11, bindery-readme 3->4)
- tests: add cases for case-insensitive scan, empty region, and marker consumption without git
Two regressions from the previous sync change:
1. The Sync templates step uses 'rm -rf' / 'cp -R', which the windows-latest runner executes under PowerShell where those flags don't exist. Pin the step to 'shell: bash' so it runs in Git Bash on Windows. The release workflow already targets ubuntu-only, so no change needed there.
2. The synced vscode-ext/src/templates/ folder is matched by the coverage 'src/**/*.ts' glob, inflating the function count without contributing any vscode-ext tests (those templates are exercised by mcp-ts/test/templates.test.ts). Exclude src/templates/** in vitest.config.ts the same way ai-setup-templates.ts already is.
soffice.exe is GUI-subsystem on Windows and pops a console window with 'Press any key to continue' when probed for --version. soffice.com is the console-subsystem wrapper that ships alongside it. Lead with soffice.com in both pathCandidates and the libreoffice default command, and harden the spawnSync probe with stdio=['ignore','pipe','pipe'] + windowsHide=true.
- Implemented `toolUpdateWorkspace` to fetch and pull the current branch, with reporting on branch status against the remote default branch.
- Enhanced `toolGitSnapshot` to support optional push functionality and remember push defaults in `.bindery/settings.json`.
- Updated README and manifest files to reflect new features and commands.
- Added tests for `toolUpdateWorkspace` and improved existing tests for `toolGitSnapshot`.
- Refactored git-related utility functions for better error handling and clarity.
- Remove unused checkPandocOutputSupport() in merge.ts
- Probe both 'libreoffice' and 'soffice' on PATH during auto-detect
- Fix check-tool-parity.mjs header: server registers unprefixed names
- Add tool-parity guard step to CI coverage job
- Fix BuildSemanticProgress.completed doc: 1-based count, not 0-based
- Bump McpServer version from 0.1.0 to 1.0.0 to match package.json
getPandocOutputFormats() now caches the result for the process lifetime.
Merge commands check format support up-front and surface a warning
instead of failing mid-export when a format is unavailable.
Add tool-locate.ts with a resolution chain: explicit setting → PATH
lookup → well-known OS install locations. Results are cached per-process
and cleared when settings change.
Wire into extension.ts via getEffectiveConfig() so pandocPath and
libreOfficePath are resolved automatically when left at defaults.
Includes 15 tests covering setting priority, cache behavior, and
fallback logic.