Repository navigation
fix(pampa): pandoc.read from Lua no longer leaks the reader's verbose trace to stderr (bd-okfxemnj) - #849
Merged
cscheid merged 8 commits intoOct 16, 2026
Conversation
…e for pipe-table delimiter dashes (GH #847) Plan skeleton + repro/probe artifacts. Two confirmed causes: the Lua pandoc.read binding is the only production caller that points the qmd reader's verbose trace buffer at stderr, and native_visitor has no arms for the '-', pipe_table_align_left/right and '![' marker tokens, so they hit the catch-all before their parent consumes them by name. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Scope is Phase 1 (sink) + Phase 2 (explicit marker arms) + reader-level and e2e tests. Forwarding pandoc.read's reader diagnostics is filed as bd-fwswbxnl; making the dispatch catch-all test-visible as bd-yi613i1r. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…emnj, GH #847) Phase 0 of the plan. A reader-level test asserts the qmd reader's verbose trace stays empty for pipe tables (all alignments) and inline images; an e2e q2 render test asserts the issue's repro leaves stderr free of '[TOP-LEVEL MISSING NODE]' lines. Both fail on this tree. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…o stderr (bd-okfxemnj, GH #847) The qmd reader's output stream is its verbose trace (what 'pampa -v' shows); every pipeline caller sinks it, but the Lua pandoc.read binding handed it std::io::stderr(). Any node kind reaching the tree-sitter dispatch catch-all therefore printed an unformatted '[TOP-LEVEL MISSING NODE] Warning: Unhandled node kind: ...' line, one per pipe-table delimiter dash, on every render that parsed a table through pandoc.read. Use VerboseOutput::Sink like lua/config_value.rs. The reader's real diagnostics are still discarded here; that is bd-fwswbxnl. Fixes #847 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…licit visitor arms (bd-okfxemnj) The '-', pipe_table_align_left and pipe_table_align_right children of pipe_table_delimiter_cell, and the '![' opener of pandoc_image, are consumed by their parent processors by node name, but had no arm in native_visitor, so each one fell through to the catch-all and wrote an 'Unhandled node kind' line to the reader's verbose trace. Add arms in the existing marker-token pattern (atx markers, task-list markers, math delimiters). Behavior-preserving: the catch-all already returned the same IntermediateUnknown; only the trace line goes away, so 'pampa -v' is quiet on well-formed input and the catch-all means what it says. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
…doc-read-delimiter-dash-noise
cscheid
deleted the
feature/bd-okfxemnj-pandoc-read-delimiter-dash-noise
branch
October 16, 2026 18:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #847
What
Calling
pandoc.read(text, "markdown")from an{lmd}cell or a Lua filter on text containing a pipe table printed one unformatted[TOP-LEVEL MISSING NODE] Warning: Unhandled node kind: -line per delimiter-row dash to stderr. Two independent causes, both fixed:readers::qmd::readtakes an output stream that is apampa -vtrace, not a diagnostic channel; every pipeline caller sinks it.pandoc_readinlua/readwrite.rswas the only production caller passingstd::io::stderr(). It now passesVerboseOutput::Sink, likelua/config_value.rs. This alone closes the issue.-,pipe_table_align_leftandpipe_table_align_rightchildren ofpipe_table_delimiter_cell, and the![opener ofpandoc_image, are consumed by their parent processors by node name but fell through to the catch-all, which wrote the trace line. They now get explicit arms in the existing marker-token pattern (atx markers, task-list markers, math delimiters). Behavior-preserving: the catch-all already returned the sameIntermediateUnknown. After thispampa -vis quiet on well-formed input, so the catch-all means what it says.Tests (written first, both red on the unfixed tree)
crates/pampa/tests/integration/test_trace_buffer_silence.rs: the reader's trace buffer stays empty for a pipe table (all four alignments, alignments asserted) and an inline image.crates/quarto/tests/integration/pandoc_read_stderr_e2e.rs:q2 renderof the issue's repro leaves stderr free of the trace lines and still emits both tables.Also checked on the unfixed tree that hyphens in text,
a - b, link destinations and titles, autolinks, code spans, math, list markers and thematic breaks never produce a bare-node, so the new-arm only ever sees delimiter-row dashes (probe and output underclaude-notes/plans/pandoc-read-delimiter-dash-noise-investigation/).Out of scope, filed as follow-ups
pandoc.readstill discards the reader's real diagnostics (the third tuple element).pampa -v.Plan:
claude-notes/plans/2026-10-15-pandoc-read-delimiter-dash-noise.md.cargo xtask verify --skip-hub-buildgreen on the branch.🤖 Generated with Claude Code