Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
dde010a
docs: design for document download feature
exilis Jun 26, 2026
d4cd8a2
docs: implementation plan for document download
exilis Jun 26, 2026
f3d5e94
feat(server): add ?download=1 mode to /api/file
exilis Jun 26, 2026
08a5ac4
feat(app): add downloadUrl builder
exilis Jun 26, 2026
1ab792e
test(app): pin downloadUrl encoding of query-delimiter chars
exilis Jun 26, 2026
ac68962
feat(app): add download button markup and styling
exilis Jun 26, 2026
9e4315e
a11y(app): add aria-label to download button
exilis Jun 26, 2026
4e8b0f6
feat(app): wire download button to active document lifecycle
exilis Jun 26, 2026
d007869
docs: announce document download feature
exilis Jun 26, 2026
7000a18
docs: tighten changelog wording for document download
exilis Jun 26, 2026
1501943
docs: note JS test scope and filename* simplification
exilis Jun 26, 2026
6f9fc71
test(server): cover download mode in E2E HTTP test
exilis Jun 26, 2026
c316643
docs: design for browser E2E test of document download
exilis Jun 26, 2026
8520349
docs: implementation plan for download browser E2E test
exilis Jun 26, 2026
9694275
docs: pin Playwright 1.55.0 (Node 24 compat) in E2E plan
exilis Jun 26, 2026
e4abca9
build(e2e): add Playwright (chromium) config and scripts
exilis Jun 26, 2026
25e57e4
test(e2e): harness that builds and serves the real reefdoc binary
exilis Jun 26, 2026
825bfbd
test(e2e): fail fast if reefdoc exits before ready
exilis Jun 26, 2026
53af95c
test(e2e): cover download button lifecycle and file fidelity
exilis Jun 26, 2026
39a13c3
ci: add e2e job running Playwright against the real binary
exilis Jun 26, 2026
cf74c3f
docs: document the npm run e2e browser test
exilis Jun 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,19 @@ jobs:
node-version: '22'
- run: npm install
- run: npm test

e2e:
name: E2E (Playwright + real binary)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: '1.23'
cache: true
- uses: actions/setup-node@v6
with:
node-version: '22'
- run: npm install
- run: npx playwright install --with-deps chromium
- run: npm run e2e
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@

# Git worktrees
/.worktrees

# Playwright E2E artifacts
/test-results
/playwright-report
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ All notable changes to reefdoc are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.10.0] - 2026-06-26

### Added
- Download the currently-open document with one click via a button in the tab
bar. Works for every document type reefdoc opens (markdown, Allium, code,
PDF, DOCX, XLSX, PPTX), and you get the original file back unchanged.

## [0.9.0] - 2026-06-25

### Added
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ go build -o reefdoc . && ./reefdoc ./docs
- GitHub-flavored markdown, code syntax highlighting, and mermaid diagrams
- [Allium](https://allium.dev) spec files (`.allium`) rendered as formatted cards
- Preview PDF, DOCX, XLSX, and PPTX files in the browser (rendered client-side)
- Download the open document (its original file) with one click
- Auto table of contents from document headings
- Dark / light theme (mermaid follows the theme)
- Live reload: edit a file in any editor and the open tab updates
Expand All @@ -52,7 +53,9 @@ plus a vanilla-JS frontend (tree, tabs, markdown/mermaid/highlighting, TOC,
themes, live reload). See [`docs/specs`](docs/specs) for the design and
[`docs/plans`](docs/plans) for the implementation plan.

Run the tests with `go test ./...` and `npm test`.
Run the unit tests with `go test ./...` and `npm test`. The browser end-to-end
test (Playwright, drives the real binary) runs with `npm run e2e` — it needs Go
on your PATH and Playwright's Chromium installed (`npx playwright install chromium`).

## Architecture

Expand Down
Loading