Skip to content

Review workflow, two-file import, safer DOCX handling; release v1.7.0 - #13

Merged
tschnorpfeil merged 3 commits into
mainfrom
chore/git-fetch-sync
Nov 3, 2026
Merged

tschnorpfeil merged 3 commits into
mainfrom
chore/git-fetch-sync

Conversation

@tschnorpfeil

Copy link
Copy Markdown
Owner

Summary

  • Review workflow: "Accept all open" (confirmed, revalidated, one undo step), a numbers/currencies/percentages filter, review tooltips and keyboard shortcuts on the stepper and floating controls.
  • Import: both pickers accept two files (old, then new); replacing a reviewed pair is guarded once; explicit loads set a clean baseline; toolbar swap button.
  • DOCX/PDF safety: bounded ZIP reader (4,096 parts, 64 MiB per part, 256 MiB total) for import and source export; ambiguous table edits fall back to a confirmed _Generated.docx; PDF pages and tasks are cleaned up.
  • Fixes: [hidden] always wins over component display values; English web app manifest for /en/; dark-mode link colour; laptop padding.
  • Final review fixes (b0f142c):
    • Cancelling the unsaved-work prompt now clears the file pickers, so re-picking the same file works.
    • Browsers without DecompressionStream import DOCX through Mammoth again instead of reporting every file as corrupt.
    • Rejected header/footer groups stay one entry when pages differ only in the page number.
  • Version bumped to 1.7.0, notes in docs/releases/v1.7.0.md.

Verification

python3 scripts/build.py and node scripts/check.mjs pass locally: security/privacy/i18n (342 keys), SEO, worker parity (18), export builders (426 groups), core diff (51), app state (15 groups, with new regression cases for the fixes above).

🤖 Generated with Claude Code

Rémi Hermes and others added 3 commits November 3, 2026 12:51
Selecting two documents in one file picker cleared the picker after the
first upload, so the second file was dropped before it could be read. The
intake now snapshots the selection before either upload is awaited and
treats the pair as one guarded operation, which also stops a review reset
from making the second upload prompt again.

Beyond that:

- DOCX text is read through streaming ZIP decompression instead of building
  the whole archive in memory, and the PDF task is destroyed on failure.
- Restoring a saved session establishes a clean review baseline even when
  the right-hand text is unchanged.
- Document replacement and paste-field changes guard pending review work;
  the right-side document input is resolved per side.
- The landing-page drop slots and top-bar actions share one clear path.
- Search metadata, start-page FAQ scope and the privacy wording settle.

Docs record the browser and office verification round and its limits.
`.btn` sets `display: inline-flex`, so the user-agent `[hidden]` rule lost
against it and elements stayed visible after JS marked them hidden. The
worst case was a comparison without any changes: the sidebar offered
"accept all, export the final Word version" right above the message saying
both documents are identical. The paste entry in the overflow menu showed
for the same reason.

A single global rule restores the meaning of the attribute. Verified in a
browser: with identical documents no action is offered, with 20 changes the
accept-all action is still there, and no element carrying `hidden` renders
in any checked state.
- Cancelling the unsaved-work prompt now clears both file pickers, so
  choosing the same file again fires a change event.
- Browsers without DecompressionStream import DOCX text through Mammoth
  again instead of reporting every file as corrupt.
- Rejected header/footer entries recompute their changed words, so a
  rejected group that differs only in page numbers stays one entry while
  substantive numeric differences still split it.
- Add regression tests, release notes and bump the app version to 1.7.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tschnorpfeil
tschnorpfeil merged commit 1e3f298 into main Nov 3, 2026
1 check 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.

1 participant