Skip to content

Commit 422c3c1

Browse files
sync beads: bd-1jnb (q2-demos vite build), bd-233j (e2e YAML warnings)
1 parent 155acbf commit 422c3c1

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

.beads/issues.jsonl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
{"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}
1818
{"id":"bd-1hdz","title":"Title-prefix home-page carve-out (Q1 stem==index parity)","description":"Q1 only injects website.title as pagetitle for the home page (stem == \"index\" && offset === \".\") when both title and pagetitle are absent. Phase 7 takes the broader \"any untitled page falls back to website title\" rule (Decision 4). Revisit if a real fixture surfaces a problem. Originating phase: bd-b9mz.","status":"open","priority":4,"issue_type":"feature","created_at":"2026-04-27T15:03:22.707126Z","created_by":"cscheid","updated_at":"2026-04-27T15:03:22.707126Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-1hdz","depends_on_id":"bd-0tr6","type":"parent-child","created_at":"2026-04-27T15:03:22.707126Z","created_by":"cscheid","metadata":"{}","thread_id":""},{"issue_id":"bd-1hdz","depends_on_id":"bd-b9mz","type":"discovered-from","created_at":"2026-04-27T15:03:22.707126Z","created_by":"cscheid","metadata":"{}","thread_id":""}]}
1919
{"id":"bd-1hwd","title":"Phase 5: Inline splicing for incremental writer","description":"Implement inline-level splicing in the incremental writer. When a reconciliation plan involves changes that neither add nor remove nodes that create newline characters (SoftBreak, LineBreak), indentation boundaries are preserved and inline changes can be spliced without rewriting the entire indentation boundary. This is a critical optimization for the common case of text edits within paragraphs inside lists and block quotes. Plan: claude-notes/plans/2026-02-10-inline-splicing.md","status":"closed","priority":1,"issue_type":"feature","created_at":"2026-02-10T15:09:50.520536Z","created_by":"cscheid","updated_at":"2026-02-10T16:37:28.833053Z","closed_at":"2026-02-10T16:37:28.833034Z","close_reason":"Implemented inline splicing for incremental writer. All phases complete (5a-5g): safety checks, source span utilities, inline coarsening/assembly, comprehensive property tests, integration. 124 tests across 4 test files. 6394 workspace tests pass.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-1hwd","depends_on_id":"bd-2t4o","type":"discovered-from","created_at":"2026-02-10T15:09:50.520536Z","created_by":"cscheid","metadata":"{}","thread_id":""}]}
20+
{"id":"bd-1jnb","title":"q2-demos vite build fails: imports /src/wasm-js-bridge/cache.js","description":"The vite build of q2-demos/hub-react-todo and q2-demos/kanban fails with:\n\n [vite]: Rollup failed to resolve import \"/src/wasm-js-bridge/cache.js\"\n from \"crates/wasm-quarto-hub-client/pkg/wasm_quarto_hub_client.js\"\n\nThe wasm-bindgen-generated JS glue references an absolute path that\nresolves correctly when vite roots at hub-client/ (which has\nsrc/wasm-js-bridge/cache.js), but the demos do not have that file.\n\nThe demos likely need either:\n - their own copy of the cache.js bridge module, or\n - vite alias config that resolves the path to hub-client's copy, or\n - the wasm crate's #[wasm_bindgen(module = \"...\")] path changed to\n something portable.\n\nSurfaced while getting the Hub-Client E2E Tests workflow to run on CI\n(branch chore/e2e-ci). The workflow now builds only ts-packages +\nhub-client to avoid this failure; the demos remain broken at build\ntime. See claude-notes/ for session notes if needed.","status":"open","priority":2,"issue_type":"bug","created_at":"2026-05-10T23:16:12.128803Z","created_by":"gordon","updated_at":"2026-05-10T23:16:12.128803Z","source_repo":".","compaction_level":0,"original_size":0}
2021
{"id":"bd-1kly","title":"Complete FootnotesTransform for reference-location: block/section","description":"FootnotesTransform at crates/quarto-core/src/transforms/footnotes.rs:99-105 currently no-ops for reference-location: block and section, leaving raw Inline::Note nodes in the AST with a stale comment claiming \"Pandoc handles this\". pampa's HTML writer (crates/pampa/src/writers/html.rs:806-817) also doesn't handle them correctly — it emits <sup>[N]</sup> where N is the length of the note content array, not a sequential number, with a TODO acknowledging the gap.\n\nNeither layer numbers Notes correctly for these configs. The work is missing in both places.\n\nThe proper fix is to extend FootnotesTransform to handle block/section: number all Notes in document order (already done for document-mode) and emit per-block or per-section footnote sections at the right boundary instead of a single document-end section.\n\nDiscovered while reviewing q2-preview Plan 2B (claude-notes/plans/2026-05-04-q2-preview-plan-2b-builtin-components.md) — q2-preview's Note.tsx falls back to JS-side numbering with body-in-tooltip rendering for these configs as a temporary v1 measure. When this beads is closed and the upstream transform handles all four reference-location values uniformly, q2-preview's Note.tsx fallback can be deleted.","status":"open","priority":2,"issue_type":"bug","created_at":"2026-05-09T20:40:28.166910Z","created_by":"gordon","updated_at":"2026-05-09T20:40:28.166910Z","source_repo":".","compaction_level":0,"original_size":0}
2122
{"id":"bd-1kvf","title":"Incremental writer loses blank line between front matter and first block","description":"When toggling a checkbox via the React todo demo, the blank line between the YAML front matter closing --- and the first div (::: {#todo}) disappears. Root cause: metadata_structurally_equal() uses ConfigValue PartialEq which includes source_info, causing false inequality between re-parsed original and JSON-deserialized new AST. Secondary latent bug: the metadata rewrite path doesn't emit the gap separator. Plan: claude-notes/plans/2026-02-08-incremental-writer-metadata-gap.md","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-02-08T16:08:02.508695Z","created_by":"cscheid","updated_at":"2026-02-08T16:30:27.327884Z","closed_at":"2026-02-08T16:30:27.327868Z","close_reason":"Fixed: content-only metadata comparison + gap preservation on rewrite","source_repo":".","compaction_level":0,"original_size":0,"labels":["bug","incremental-writer"]}
2223
{"id":"bd-1mbj","title":"build_q2_preview_transform_pipeline_is_subset_of_html drift: HTML pipeline gained listing-* stages not in q2-preview subset","description":"Test at crates/quarto-core/src/pipeline.rs:1942 fails on feature/q2-preview-work HEAD. The HTML pipeline added listing-generate, listing-render, categories-sidebar, listing-feed-stage, listing-feed-link stages without updating the q2-preview subset (or the test). Surfaced during Plan 2A item 11 implementation; pre-existing on the branch (verified by stashing 2A changes — failure persists). Decide: include these in q2-preview's subset, exclude them by name in the assertion, or update the test's expected subset.","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-05-09T16:21:16.410360Z","created_by":"gordon","updated_at":"2026-05-09T18:11:42.819490Z","closed_at":"2026-05-09T18:11:42.819459Z","close_reason":"Fixed by 0887a3fa (refactor q2-preview pipeline to deny-list construction) — listing-* stages now flow into q2-preview by default since the subset is HTML-pipeline minus an explicit exclusion list, not a hand-maintained allow-list. The test was deleted with the assertion infrastructure.","source_repo":".","compaction_level":0,"original_size":0,"labels":["bug","plan2a-discovered"]}
@@ -30,6 +31,7 @@
3031
{"id":"bd-1xph","title":"Tree-sitter splits paragraph at line starting with * (emphasis or strong)","description":"Same class as bd-af1e. The scanner's line-break handler at scanner.c:2286-2291 and 2371-2376 excludes '*' from soft-line-break candidates whenever it appears at the start of a continuation line. But '*' only opens a block in specific contexts:\n- '* ' followed by space → list marker\n- '*** ' or longer with whitespace/eol → thematic break\n- otherwise → inline emphasis ('*emph*') or strong ('**strong**'), which should soft-break\n\nVerified pampa-vs-pandoc divergence:\n foo bar\n *emph* baz → pampa: 2 paragraphs, pandoc: 1 with SoftBreak + Emph\n **strong** baz → pampa: 2 paragraphs, pandoc: 1 with SoftBreak + Strong\n\nWhy this matters (severity sibling of bd-af1e): the asterisk IS the syntax for inline emphasis/strong. A user CANNOT work around the bug with backslash escaping (\\\\*emph\\\\* renders literally as '*emph*'). Underscore alternatives (_emph_, __strong__) work correctly already because '_' is not in the exclusion list, but many users prefer asterisks.\n\nBy contrast, '-', '+', '#', and digits at line start CAN be worked around via backslash escape (\\\\-text, \\\\#hashtag, \\\\123abc render as plain text starting with the punctuation), so we are deferring those.\n\nFix approach (same as bd-af1e — peek-count): when first_lookahead == '*', advance through consecutive asterisks. Then check what follows:\n- whitespace/eol after a single '*' → list marker (interrupt)\n- whitespace/eol after 3+ '*' → thematic break (interrupt) \n- anything else → inline (allow soft break)\n\nReference implementation: bd-af1e fix in scanner.c:2263-2308 (commit 274547af). The peek-without-mark_end + STATE_MATCHING-fallback pattern from that fix should generalize directly. See claude-notes/plans/2026-04-30-tree-sitter-backtick-paragraph-split.md.\n\nTest the fix doesn't break: '* item' (list opens), '*** ' (thematic break), '**foo**' at line start (inline strong), and '*foo*' / '**foo**' as continuation lines (soft break).","status":"closed","priority":1,"issue_type":"bug","assignee":"cscheid","created_at":"2026-04-30T18:45:50.725551Z","created_by":"cscheid","updated_at":"2026-04-30T18:56:04.698163Z","closed_at":"2026-04-30T18:56:04.698013Z","close_reason":"Fixed: extended bd-af1e peek-count pattern to '*' at line start. Single '*' followed by ws/eol → list marker (interrupt); >=3 '*' followed by ws/eol → thematic break (interrupt); otherwise inline emph/strong → soft break. Tree-sitter test 462/462 pass; workspace 8125/8125 pass; pampa output matches pandoc.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-1xph","depends_on_id":"bd-af1e","type":"related","created_at":"2026-04-30T18:45:50.725551Z","created_by":"cscheid","metadata":"{}","thread_id":""}]}
3132
{"id":"bd-217g","title":"Build headless sync testing infrastructure in quarto-sync-client","description":"Extend quarto-sync-client with a headless test harness for programmatic sync server testing. Should support: (1) creating projects against a sync server URL without a browser, (2) disconnect/reconnect cycles, (3) verifying document presence and content after reconnection, (4) starting/stopping hub and TS sync servers programmatically, (5) protocol-level tracing for debugging. This pays dividends for every future sync-related bug or feature. Plan: claude-notes/plans/2026-03-03-hub-sync-missing-docs.md","status":"open","priority":2,"issue_type":"feature","created_at":"2026-03-03T23:05:32.421813Z","created_by":"cscheid","updated_at":"2026-03-03T23:05:32.421813Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-217g","depends_on_id":"bd-33qc","type":"related","created_at":"2026-03-03T23:05:32.421813Z","created_by":"cscheid","metadata":"{}","thread_id":""}]}
3233
{"id":"bd-21gu","title":"qmd writer: missing @ escape in link text causes citation re-parse","description":"From issue #150 (item 1): When a link text contains an escaped @ like `[\\@jjallaire](url)`, the qmd writer outputs the link text without re-escaping the @. Round-tripping turns the Str into a Cite. Repro:\n\n printf 'See [\\\\@jjallaire](https://github.com/jjallaire/) for details.\\n' | cargo run --bin pampa -- -t qmd\n See [@jjallaire](https://github.com/jjallaire/) for details.\n\nReporter notes there are likely other cases where escaping is needed; this is the one they saw. Plan in claude-notes/plans/ to follow.","notes":"Plan: claude-notes/plans/2026-04-30-at-escape-qmd-roundtrip.md\nRoot cause: crates/pampa/src/writers/qmd.rs:1226 escape_markdown omits @\nFix: lookahead-based escape of @ when followed by alnum/_/{\nBug also reproduces outside link context (any Str starting with @<ident>).","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-05-01T00:01:48.216570Z","created_by":"cscheid","updated_at":"2026-05-01T00:32:59.278601Z","closed_at":"2026-05-01T00:32:59.278440Z","close_reason":"Fixed in escape_markdown: always escape @ in Str bodies. Phase 2 audit of writer-escape gaps also identified { and } as same class; both fixed in this change. Position-dependent escapes (:, unbalanced ' \", line-start list markers 1./-/+) deferred to bd-kk0a. See claude-notes/plans/2026-04-30-at-escape-qmd-roundtrip.md.","source_repo":".","compaction_level":0,"original_size":0}
34+
{"id":"bd-233j","title":"Hub-Client E2E logs are flooded with YAMLWarning [TAG_RESOLVE_FAILED] !str","description":"Playwright e2e runs produce hundreds of warnings of the form:\n\n (node:NNNNN) [TAG_RESOLVE_FAILED] YAMLWarning: Unresolved tag: !str at line 14, column 12:\n - [!str \"<pre class=\\\"sourceCode toml\\\"\",\n ^^^^\n\nThe yaml npm library is encountering explicit !str tags it doesn't have\na resolver for. It falls back to treating the value as a string, so tests\nkeep running — but the noise drowns out useful output.\n\nSource of the warning: some fixture or generated YAML emits !str-tagged\nscalars (looks like syntax-highlighted HTML being serialized into YAML).\nFix is either to register a custom tag resolver for !str, or change the\nemitter to use plain quoted strings.\n\nDiscovered while getting hub-client-e2e.yml workflow to run on CI\n(branch chore/e2e-ci). Not a test failure cause, just log noise.","status":"open","priority":3,"issue_type":"bug","created_at":"2026-05-10T23:50:06.274679Z","created_by":"gordon","updated_at":"2026-05-10T23:50:06.274679Z","source_repo":".","compaction_level":0,"original_size":0}
3335
{"id":"bd-238o","title":"Port 3 known pampa Windows fixes from quarto-markdown","description":"3 fixes from quarto-markdown are proven but not yet applied in q2: (1) write_safe_string missing backslash-r escape in native.rs:14 (f8968d7), (2) CRLF normalization in test file reads (eb6d1e0), (3) path separator normalization in JSON writer json.rs:1843 (50256f3). Cannot verify until pampa is compilable on Windows (v8 exclusion resolved).","status":"open","priority":3,"issue_type":"task","created_at":"2026-03-20T13:36:17.010374400Z","created_by":"cderv","updated_at":"2026-04-28T13:07:13.060345200Z","source_repo":".","compaction_level":0,"original_size":0,"comments":[{"id":14,"issue_id":"bd-238o","author":"cderv","text":"Now verifiable on Windows since v8 rlib unavailability was resolved (2026-03-23). Confirmed 2026-04-28 via cargo nextest -p pampa: failures observed in pampa::test unit_test_snapshots_native, unit_test_snapshots_json, test_html_writer, test_json_writer, unit_test_corpus_matches_pandoc_markdown, and test_metadata_source_tracking::test_metadata_source_tracking_002_qmd. Symptoms match the 3 unported quarto-markdown fixes (write_safe_string \\r escape, CRLF normalization in test reads, JSON writer path separator). Ready to port and verify.","created_at":"2026-04-28T13:07:13Z"}]}
3436
{"id":"bd-2gc9","title":"Nested tight lists incorrectly marked as loose (Para instead of Plain)","description":"In process_list() at crates/pampa/src/pandoc/treesitter.rs:183-192, multi-block list items with at least one paragraph are unconditionally marked as loose. This is wrong: a list item containing [Paragraph, BulletList] (e.g., '* foo\\n * bar') has no blank line between blocks and should remain tight. The CommonMark spec says a list is loose only when items are separated by blank lines or contain two block elements WITH A BLANK LINE between them.","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-02-13T22:49:14.652871Z","created_by":"cscheid","updated_at":"2026-02-13T23:05:58.650439Z","closed_at":"2026-02-13T23:05:58.650417Z","close_reason":"Fixed: detect blank lines via tree-sitter block_continuation spans in process_list_item, propagate through IntermediateListItem","source_repo":".","compaction_level":0,"original_size":0}
3537
{"id":"bd-2gkx","title":"Kanban: New card creation button with form","description":"Add a 'New Card' button that opens a form with: title (required), type dropdown (feature/milestone/bug/task), optional deadline with date picker, optional status. Default creation date to today. Extend addCard() in astHelpers.ts to support deadline and status. Plan: claude-notes/plans/2026-02-11-kanban-ui-enhancements.md","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-02-11T18:32:46.896753Z","created_by":"cscheid","updated_at":"2026-02-11T18:39:33.119846Z","closed_at":"2026-02-11T18:39:33.119829Z","close_reason":"Implemented - new card form with type, status, and deadline","source_repo":".","compaction_level":0,"original_size":0}

0 commit comments

Comments
 (0)