Skip to content

chore(deps): make tokio optional - #53

Merged
chaliy merged 28 commits into
mainfrom
claude/project-thread-foq2nw
Oct 27, 2026
Merged

chaliy merged 28 commits into
mainfrom
claude/project-thread-foq2nw

Conversation

@chaliy

@chaliy chaliy commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

🤖 Generated with Claude Code
Requested by Михайло · project thread

Closes #11 (last remaining item: optional dependencies).

What changed

  • tokio is now an optional dependency of markkit, pulled in only by http_client (tokio/net) and tool (tokio/sync). Default, docx,spreadsheet, pdf, pptx, markdown builds no longer link it.
  • CI asserts tokio is absent from the default and docx,spreadsheet dependency trees.
  • serde_json stays required: always-on Jupyter notebook input (feat(formats): add Jupyter notebook input #50) parses JSON, so gating it would buy nothing. Documented in architecture.

Why

Issue #11: embedders using only sync extraction paid for tokio.

Before / After

Before: cargo tree -p markkit -e normal | grep -c tokio → non-zero.
After: 0 for default and --no-default-features --features docx,spreadsheet. Every feature combo ("", none, docx+spreadsheet, pdf, pptx, markdown, tool, http_client, all) builds; just fmt lint test check-okf test-scripts examples green; wasm32 build OK.

Risk

  • Low. Only the dependency graph changes; feature sets that need tokio enable it.

Checklist

  • Tests added or updated (CI tree check)
  • Backward compatibility considered

Generated by Claude Code

chaliy added 28 commits October 26, 2026 23:53
- Single-row sheets render the row as data under Excel column letters
- Extraction.title from XLSX core.xml, ODS meta.xml, XLS SummaryInformation
- XLSB content type / extension / container detected as Format::Xlsb, not Xlsx
- XLSX without _rels/.rels gets the standard package relationship
- Release profile uses panic = "unwind" so catch_unwind guards work
- Document the trailing newline as intended

Part of #11
- Single-row sheets render the row as data under Excel column letters
- Extraction.title from XLSX core.xml, ODS meta.xml, XLS SummaryInformation
- XLSB content type / extension / container detected as Format::Xlsb, not Xlsx
- XLSX without _rels/.rels gets the standard package relationship
- Release profile uses panic = "unwind" so catch_unwind guards work
- Document the trailing newline as intended

Part of #11
…-foq2nw

# Conflicts:
#	crates/markkit/src/extract.rs
#	crates/markkit/src/lib.rs
#	knowledge/log.md
New pptx feature (in all_formats): slides in sldIdLst order as
'## Slide N: <title>' sections, bulleted body placeholders, text boxes,
tables with spans, hyperlinks, speaker notes. Hidden slides skipped unless
include_hidden_content. Shared OOXML helpers move from docx.rs to ooxml.rs.
Legacy .ppt becomes Format::Ppt and is rejected explicitly.

Part of #11
Extraction/ParsedDocument warnings become Vec<Warning> { code: WarningCode,
detail } so embedders match on a stable code instead of parsing strings.
Display keeps the old "code: detail" form; the agent tool output is
unchanged. Markkit derives Clone and Debug.

Part of #11
…-foq2nw

# Conflicts:
#	CHANGELOG.md
#	crates/markkit/src/xml.rs
…-foq2nw

# Conflicts:
#	crates/markkit-js/src/lib.rs
@chaliy
chaliy merged commit a81aa44 into main Oct 27, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Office backend follow-ups after 0.1.0 (from fetchkit integration)

1 participant