Skip to content

2026-10-02 snapshot: SheetJS, ExcelJS, LibreOffice adapters; content-model mutation scoring; public-API perf run - #47

Merged
wolfiesch merged 5 commits into
masterfrom
officelibs-snapshot-2026-10-02
Oct 2, 2026
Merged

wolfiesch merged 5 commits into
masterfrom
officelibs-snapshot-2026-10-02

Conversation

@wolfiesch

@wolfiesch wolfiesch commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Adds SheetJS, ExcelJS and LibreOffice adapters to the xlsx lane and publishes the 2026-10-02 snapshot (results-2026-10-02/: xlsx, mutation, calc, cross-language, perf).
  • Feature denominators count only features at least one adapter scored (pivot_tables was counted while unscored).
  • The mutation lane scores package meaning with the xlsx content model: an equivalent rewrite (renamed parts, renumbered rIds, re-encoded XML) preserves; the requested edits are verified.
  • Fresh perf run on a quiet host measures every library, WolfXL included, through its public API. The April WolfXL numbers used private backend objects and are marked superseded.
  • Public speed and fidelity claims in README, docs-site and the dashboard are corrected to match current data.

Verification

  • ruff check, mypy src, pytest.
  • results-2026-10-02/perf/README.md carries the run receipt and maps the run's local source commit to its published equivalent by tree hash.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…shot; score the mutation lane with the format content model

- New adapters: SheetJS, ExcelJS, LibreOffice (xlsx lane).
- Feature denominators count only features at least one adapter scored.
- Mutation lane scores package meaning with the xlsx content model:
  equivalent rewrites preserve, edits are verified.
- Recorded failures never embed host paths.
Copilot AI balanced review requested due to automatic review settings October 2, 2026 09:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

XML encoding handling, dashboard denominators, and required architecture decision documentation remain unresolved.

Review effort: Balanced
Findings: 1 High severity · 2 Medium severity

Open (3)
What changed in this PR

Adds three external-library adapters, semantic mutation scoring, remote Docker oracle transport, and publishes the 2026-10-02 benchmark snapshot.

Changes:

  • Adds SheetJS, ExcelJS, and LibreOffice read/write/modify adapters.
  • Replaces package-level mutation scoring with content-model comparison.
  • Updates benchmark artifacts and public performance/fidelity claims.
File Description
tools/​external-oracles/​sheetjs/​README.md Documents SheetJS helper.
tools/​external-oracles/​sheetjs/​package.json Pins SheetJS dependency.
tools/​external-oracles/​sheetjs/​package-lock.json Locks SheetJS package.
tools/​external-oracles/​remote/​README.md Documents remote containers.
tools/​external-oracles/​remote/​docker_oracle.py Implements host transport.
tools/​external-oracles/​remote/​container_entry.py Implements container transport.
tools/​external-oracles/​libreoffice/​README.md Documents UNO adapter.
tools/​external-oracles/​libreoffice/​libreoffice_uno_adapter.py Launches headless UNO macro.
tools/​external-oracles/​exceljs/​README.md Documents ExcelJS adapter.
tools/​external-oracles/​exceljs/​exceljs-oracle.cjs Dispatches model operations.
tools/​external-oracles/​excelize/​Dockerfile Builds Excelize oracle image.
tools/​external-oracles/​apache-poi/​Dockerfile.dockerignore Excludes build artifacts.
tools/​external-oracles/​apache-poi/​Dockerfile Builds POI oracle image.
tests/​test_mutation_suite.py Tests semantic preservation.
tests/​test_env_fallback_contracts.py Updates mutation contracts.
src/​excelbench/​results/​renderer.py Revises WolfXL summary.
src/​excelbench/​results/​mutation_renderer.py Renders semantic verdicts.
src/​excelbench/​results/​html_dashboard.py Revises dashboard messaging.
src/​excelbench/​modifiable.py Registers new mutation engines.
src/​excelbench/​harness/​mutation.py Implements content-model scoring.
src/​excelbench/​harness/​external_oracles.py Adds remote Docker configuration.
src/​excelbench/​harness/​adapters/​sheetjs_adapter.py Adds SheetJS adapter.
src/​excelbench/​harness/​adapters/​openpyxl_adapter.py Detects modern password hashes.
src/​excelbench/​harness/​adapters/​libreoffice_adapter.py Adds LibreOffice adapter.
src/​excelbench/​harness/​adapters/​json_model_adapter.py Adds shared JSON adapter base.
src/​excelbench/​harness/​adapters/​exceljs_adapter.py Adds ExcelJS adapter.
src/​excelbench/​harness/​adapters/​__init__.py Registers new adapters.
src/​excelbench/​cli.py Updates mutation output.
results/​perf/​README.md Marks old WolfXL results superseded.
results-2026-10-02/​xlsx/​matrix.csv Publishes fidelity matrix.
results-2026-10-02/​xlsx/​history.jsonl Records fidelity run.
results-2026-10-02/​xlsx/​FIDELITY_DELTAS.md Initializes delta report.
results-2026-10-02/​README.md Summarizes snapshot.
results-2026-10-02/​perf/​run.sh Records performance command.
results-2026-10-02/​perf/​run-log.txt Records performance run.
results-2026-10-02/​perf/​pip-freeze.txt Captures environment.
results-2026-10-02/​perf/​pins.txt Records adapter versions.
results-2026-10-02/​perf/​history.jsonl Records performance data.
results-2026-10-02/​mutation/​README.md Publishes mutation results.
results-2026-10-02/​cross-language/​WHY_FAILED.md Explains cross-language failures.
results-2026-10-02/​cross-language/​matrix.csv Publishes cross-language matrix.
results-2026-10-02/​cross-language/​history.jsonl Records cross-language run.
results-2026-10-02/​cross-language/​FIDELITY_DELTAS.md Initializes delta report.
results-2026-10-02/​cross-language/​CONTEXT.md Defines interpretation scope.
results-2026-10-02/​calc/​results.json Publishes calculation results.
results-2026-10-02/​calc/​README.md Documents calculation results.
README.md Updates public benchmark claims.
pyproject.toml Excludes vendored model checks.
METHODOLOGY.md Documents semantic scoring.
docs/​public-reporting.md Adds snapshot citation guidance.
docs-site/​index.mdx Updates benchmark scope.
docs-site/​cli/​perf.mdx Updates performance guidance.
docs-site/​adapters/​wolfxl.mdx Corrects WolfXL claims.
docs-site/​adapters/​overview.mdx Updates WolfXL API description.
docs-site/​adapters/​openpyxl.mdx Updates comparison figures.
.gitleaksignore Exempts public commit receipt.
Files not reviewed (1)
  • tools/external-oracles/sheetjs/package-lock.json: Generated file

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/excelbench/harness/mutation.py
Comment thread src/excelbench/harness/adapters/__init__.py
Comment thread src/excelbench/results/html_dashboard.py
@wolfiesch
wolfiesch merged commit 0f3964c into master Oct 2, 2026
5 checks passed
wolfiesch added a commit that referenced this pull request Oct 2, 2026
Fix #47 review findings: custom XML decoding, decision record, dashboard denominators
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.

2 participants