Skip to content

Binary document live-reload (auto-update) — rebased onto current master#17

Merged
exilis merged 21 commits into
masterfrom
integrate/binary-doc-live-reload
Jun 26, 2026
Merged

Binary document live-reload (auto-update) — rebased onto current master#17
exilis merged 21 commits into
masterfrom
integrate/binary-doc-live-reload

Conversation

@exilis

@exilis exilis commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Integrates @yuki-hayashi's binary-document live-reload work (originally #15) onto current master, resolving the conflicts introduced when the document-download feature landed first.

This is a conflict-resolved replacement for #15. All feature commits retain Yuki's original authorship (this branch merges feat/binary-doc-live-reload via a merge commit). #15 can be closed in favor of this once reviewed.

Feature (Yuki's work)

  • Binary document previews (PDF, DOCX, XLSX, PPTX) auto-update when the file changes on disk, matching markdown live-reload. Active preview re-renders automatically; background tabs are flagged and re-render on activation. Off-screen render + swap (no flicker; half-written files leave the previous preview intact); PPTX re-renders in place; scroll position best-effort preserved.
  • Fix: watcher now emits change events for binary formats (not just markdown).
  • Fix: deleting an open document shows the missing-file state in its tab.
  • Playwright E2E covering the live-reload pipeline.

Conflicts resolved (document-download had landed first)

Both features independently added a Playwright setup. Reconciled into one:

  • playwright.config.js — single config; testMatch: '**/*.{e2e,spec}.js' runs BOTH suites (download.e2e.js + binary-live-reload.spec.js) and excludes the helper files. Union of settings (expect timeout, trace, CI HTML reporter, chromium project).
  • .github/workflows/ci.yml — single e2e job running both suites, keeping the failure-artifact upload.
  • package.json — Playwright 1.61.1 (Yuki's newer version), exact-pinned per repo convention.
  • CHANGELOG.md — download stays [0.10.0]; this feature is a new [0.11.0] section. No content lost.
  • README.md — testing line covers both suites via npm run e2e.
  • web/app.js / .gitignore — auto-merged cleanly (verified coherent: both features' code present, no duplication).

Verification (all green on the merged tree)

  • go test -race ./... — pass
  • npm test — 90/90 unit tests (60 download-era + 30 binreload-era)
  • npm run e2e — 8/8 (5 download + 3 binary-live-reload, real binary)
  • go vet / gofmt -l clean; CI YAML validated

Closes #15 (superseded).

exilis added 21 commits June 26, 2026 17:24
Drives a real reefdoc server in headless Chromium to verify the live-reload
pipeline end-to-end (active auto-update, background updated-dot, delete ->
missing state). Stubs the CDN PDF viewer so tests run offline. Adds an e2e CI
job and an npm run e2e script.
…o integrate/binary-doc-live-reload

# Conflicts:
#	.github/workflows/ci.yml
#	CHANGELOG.md
#	README.md
#	package.json
#	playwright.config.js
@exilis exilis merged commit f691522 into master Jun 26, 2026
3 checks passed
@exilis exilis deleted the integrate/binary-doc-live-reload branch June 26, 2026 23:00
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