Skip to content

Commit 87336aa

Browse files
committed
Claude plans, beads sync
1 parent 43e79b5 commit 87336aa

2 files changed

Lines changed: 33 additions & 0 deletions

File tree

.beads/issues.jsonl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
{"id":"bd-1g5f","title":"Make default sync server configurable via environment variable","description":"Allow build-time configuration of the default Automerge sync server URL via VITE_DEFAULT_SYNC_SERVER environment variable. Currently hardcoded to wss://sync.automerge.org in routing.ts and ProjectSelector.tsx. Needed for internal deployments with private sync servers so beta users don't have to manually enter a custom URL.","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-02-04T21:26:45.230188Z","created_by":"cscheid","updated_at":"2026-02-04T21:48:29.989386Z","closed_at":"2026-02-04T21:48:29.989369Z","close_reason":"Implemented: DEFAULT_SYNC_SERVER now reads from import.meta.env.VITE_DEFAULT_SYNC_SERVER with fallback. Commit 3ed1c1bf.","source_repo":".","compaction_level":0,"original_size":0}
22
{"id":"bd-31lk","title":"Div transforms (definition-list, list-table) not applied to JSON input","description":"The transform_definition_list_div and transform_list_table_div transforms are applied in postprocess() which is only called from the qmd reader path. When the input format is json, the code bypasses postprocess() and these transforms are never applied. This means divs with 'definition-list' or 'list-table' classes are not converted to their proper AST representations when processing JSON input.\n\nPlan: claude-notes/plans/2026-02-05-div-transforms-json-input.md","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-02-05T14:54:35.844209Z","created_by":"cscheid","updated_at":"2026-02-05T21:16:48.523250Z","closed_at":"2026-02-05T21:16:48.523226Z","close_reason":"Fixed: Added transform_divs() function and applied it in the JSON reader. Tests added and passing.","source_repo":".","compaction_level":0,"original_size":0}
33
{"id":"bd-3cus","title":"Pre-fill new file dialog with current file's directory path","description":"When opening the new file dialog via the '+ New' button, pre-fill the filename field with the directory path of the currently active file. For example, if the user is editing 'docs/chapter1.qmd', the filename field should show 'docs/' so they only need to type the new filename. Files at the root level should not pre-fill anything.","status":"closed","priority":3,"issue_type":"feature","created_at":"2026-02-04T17:04:35.946556Z","created_by":"cscheid","updated_at":"2026-02-04T17:06:06.266467Z","closed_at":"2026-02-04T17:06:06.266419Z","close_reason":"Implemented: handleNewFile in Editor.tsx now extracts directory prefix from currentFile.path and passes it as initialFilename to NewFileDialog","source_repo":".","compaction_level":0,"original_size":0}
4+
{"id":"bd-3lsb","title":"AST-level sync client API for quarto-sync-client","description":"Add onASTChanged/updateFileAst API pair to quarto-sync-client. Phase 1: dependency-injected parser/writer with new WASM exports (parse_qmd_content, ast_to_qmd). Phase 2: incremental write using quarto-ast-reconcile for localized string splicing. Plan: claude-notes/plans/2026-02-06-ast-sync-client-api.md","status":"open","priority":1,"issue_type":"feature","created_at":"2026-02-06T19:53:57.108941Z","created_by":"cscheid","updated_at":"2026-02-06T19:53:57.108941Z","source_repo":".","compaction_level":0,"original_size":0}
45
{"id":"bd-8exa","title":"Implement shareable project URLs for hub-client","description":"Add support for shareable URLs that use automerge index document IDs instead of local IndexedDB UUIDs. This enables users to share project links with others while minimizing exposure of sensitive document IDs.\n\nPlan: claude-notes/plans/2026-02-03-shareable-urls.md","status":"in_progress","priority":1,"issue_type":"feature","created_at":"2026-02-03T15:17:50.527124Z","created_by":"cscheid","updated_at":"2026-02-03T15:24:33.898151Z","source_repo":".","compaction_level":0,"original_size":0}
6+
{"id":"bd-s0ln","title":"hub-react-todo demo app (AST sync proof of concept)","description":"Standalone Vite React app in q2-demos/hub-react-todo that connects to a sync server, subscribes to a QMD file, and renders a live-updating todo list from the Pandoc AST. Demonstrates onASTChanged callback from Phase 1 of AST sync client API. Plan: claude-notes/plans/2026-02-06-hub-react-todo-demo.md","status":"open","priority":1,"issue_type":"task","created_at":"2026-02-06T20:15:06.711433Z","created_by":"cscheid","updated_at":"2026-02-06T20:15:06.711433Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-s0ln","depends_on_id":"bd-3lsb","type":"discovered-from","created_at":"2026-02-06T20:15:06.711433Z","created_by":"cscheid","metadata":"{}","thread_id":""}]}
57
{"id":"k-02o9","title":"HTML writer source location tracking for editor integration","description":"Add optional source location tracking to HTML output to enable 'click in HTML → highlight in source' for interactive previews. See plan: claude-notes/plans/2025-12-21-html-source-location-tracking.md","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-21T21:40:02.851880Z","updated_at":"2025-12-21T21:40:02.851880Z","source_repo":".","compaction_level":0,"original_size":0}
68
{"id":"k-02rp","title":"Add project rendering from VFS to wasm-qmd-parser","description":"Add a function to render a project (multi-file) using files from the virtual filesystem. This will read _quarto.yml and referenced files from VFS and produce HTML output.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-23T01:02:56.445592Z","updated_at":"2025-12-23T01:10:58.943494Z","closed_at":"2025-12-23T01:10:58.943494Z","source_repo":".","compaction_level":0,"original_size":0}
79
{"id":"k-0dqu","title":"Refactor citeproc output rendering to unify String and Inlines paths","description":"The quarto-citeproc crate has dual code paths for Output AST conversion: render() -> String and to_inlines() -> Pandoc AST. Both implement similar logic for delimiter handling, punctuation collision avoidance, formatting, etc. This creates maintenance burden and potential for bugs (like the delimiter inheritance bug). Refactor to use Output -> Inlines as the canonical conversion, then Inlines -> String for the String path. Plan: claude-notes/plans/2025-12-05-citeproc-delimiter-inheritance-report.md","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-05T23:36:21.963061Z","updated_at":"2025-12-06T00:23:28.822793Z","closed_at":"2025-12-06T00:23:28.822793Z","source_repo":".","compaction_level":0,"original_size":0}

CLAUDE.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ printf '\033[0m' && printf '\033]8;;\007' && echo "Terminal reset"
2020

2121
When the user asks you to "reset the terminal", run this command.
2222

23+
## **Workflow: Plan-Driven Development (TDD)**
24+
25+
Always follow TDD workflow: write/update tests BEFORE implementing features. When creating plans, include test specifications as the first phase. Never skip to implementation without a test plan.
26+
2327
## **GIT PUSH POLICY**
2428

2529
**NEVER push to the remote repository without explicit user permission.** Always:
@@ -32,6 +36,10 @@ When the user asks you to "reset the terminal", run this command.
3236

3337
This applies even at the end of sessions. Prepare the commit but wait for approval to push.
3438

39+
## Git Workflow
40+
41+
When asked to 'stage and commit everything' or 'commit all changes', stage ALL modified/untracked files (`git add -A`), not just the files Claude edited in the current session.
42+
3543
## **WORK TRACKING**
3644

3745
We use br (beads_rust) for issue tracking instead of Markdown TODOs or external tools.
@@ -239,6 +247,19 @@ npm run build # Production build
239247

240248
**Important:** Never run `npm install` from hub-client directly - dependencies are hoisted to the root `node_modules/`.
241249

250+
## Architecture Notes
251+
252+
### VFS Path Conventions
253+
254+
All VFS file paths use the `/project/` prefix. When resolving file paths in WASM context, always account for this prefix. Never assume bare paths will work in the VFS layer.
255+
256+
### Crate Layout
257+
258+
- `pampa` is the core Quarto engine crate
259+
- `quarto-core` handles higher-level orchestration
260+
- `wasm-quarto-hub-client` is the WASM client (NOT wasm-qmd-parser)
261+
- Always check `git diff` for uncommitted changes before starting work on a continuation session
262+
242263
## hub-client Commit Instructions
243264

244265
**IMPORTANT**: When making commits that include changes to `hub-client/`, you MUST also update `hub-client/changelog.md`.
@@ -269,6 +290,12 @@ The changelog is rendered in the About section of the hub-client UI.
269290
- **CRITICAL**: Do NOT pipe `cargo nextest run` through `tail` or other commands - it causes hangs. Run it directly.
270291
- **CRITICAL**: If you'll be writing tests, read the special instructions on file claude-notes/instructions/testing.md
271292

293+
## Build Commands
294+
295+
- WASM build: `npm run build:all` (NOT `cargo build --target wasm32-unknown-unknown`)
296+
- Always verify WASM changes with the correct build command
297+
- Fresh clone builds require dist/ directories to exist; run full build before testing
298+
272299
## Full Project Verification
273300

274301
**IMPORTANT**: Before committing changes that affect `quarto-core`, `quarto-pandoc-types`, or other crates used by `wasm-quarto-hub-client`, run full verification:
@@ -318,6 +345,10 @@ Add new rules in `crates/xtask/src/lint/`. Each rule should:
318345

319346
- **CRITICAL** If you'll be writing code, read the special instructions on file claude-notes/instructions/coding.md
320347

348+
## Debugging Approach
349+
350+
When diagnosing issues, do NOT jump to conclusions (e.g., 'race condition') before gathering evidence. Check the actual error path, inspect runtime values, and verify hypotheses with targeted tests before proposing fixes.
351+
321352
## Claude Code hooks
322353

323354
This repository has Claude Code hooks configured in `.claude/settings.json`.

0 commit comments

Comments
 (0)