Skip to content

Fix XLSX fidelity and checkpoint overhead - #12

Merged
rastagan-git merged 1 commit into
mainfrom
agent/complete-issue-11
Jul 22, 2026
Merged

Fix XLSX fidelity and checkpoint overhead#12
rastagan-git merged 1 commit into
mainfrom
agent/complete-issue-11

Conversation

@rastagan-git

Copy link
Copy Markdown
Owner

Summary

  • preserve exact source-cell style references and restore untouched cell XML when rebuilding XLSX output
  • keep touched values while retaining their original style semantics, including styled blanks and affected shared-formula groups
  • reduce checkpoint overhead by taking one DataFrame value snapshot per write and caching successful worksheet-layout validation
  • prevent --force from overwriting a checkpoint that another process replaced after this run created it
  • report PUG REST for PubChem rows where PUG-View was not attempted, while documenting the attempted-interface semantics
  • bump AromaNexus to 0.3.2 and update both READMEs plus the bundled curation Skill

Root cause

The preserved package kept the original styles.xml, but the openpyxl round trip could omit or renumber a worksheet cell's s reference. An untouched cell could therefore fall back to a non-trivial cellXfs[0] style. Checkpoint writes also used DataFrame.iat for every touched cell; pandas copied the growing workbook context from frame.attrs during those scalar accesses, multiplying serialization cost.

User impact

Untouched workbook cells now retain their effective source formatting, including workbooks with a non-trivial base style. Checkpoints remain complete, openable .partial.xlsx workbooks, but their measured serialization overhead is substantially lower. --no-odor no longer claims PUG-View participation.

Validation

  • python -m pytest -q: 94 passed
  • python -m ruff check .: passed
  • python -m ruff format --check .: passed
  • bundled Skill quick_validate.py: passed
  • wheel and sdist build for 0.3.2: passed
  • no-network 262-row benchmark:
    • checkpoint disabled median: 2.511 s
    • checkpoint every 25 rows median: 2.798 s
    • enabled/disabled ratio: 1.114 (+11.4%)

Fixes #11

@rastagan-git
rastagan-git marked this pull request as ready for review July 22, 2026 19:10
@rastagan-git
rastagan-git merged commit f3c8162 into main Jul 22, 2026
8 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.

Complete XLSX style fidelity and reduce checkpoint overhead after Issue #8

1 participant