Skip to content

Releases: ranuts/document

v0.0.8

Choose a tag to compare

@chaxus chaxus released this 12 Oct 10:57

What's Changed

  • test(vendor): pin the in-process server responder and x2t's single seam by @chaxus in #219
  • fix(i18n): an image URL that fails must not report it in Chinese by @chaxus in #220
  • docs: measure what moving x2t off the editor frame would cost by @chaxus in #223
  • perf(vendor): let the browser decompress x2t.wasm by @chaxus in #222
  • test(vendor): the sdkjs plugin framework is alive in v9, pin it by @chaxus in #221
  • perf(editor): convert in a worker, so x2t's heap can be handed back by @chaxus in #224
  • chore(deps): vitest 4.1.11 closes the @vitest/mocker path traversal by @chaxus in #225
  • fix(fonts): give every family a tile, so the font list stops crashing by @chaxus in #226
  • fix(editor): re-request the frame's document when a worker swap killed it by @chaxus in #228
  • fix(i18n): a link that cannot be fetched says why, in the reader's language by @chaxus in #229
  • fix(fonts): rebuild the png sprites from their masks; document the plugin story by @chaxus in #230
  • fix(editor): the x2t proxy must not fetch a document as if it were a URL by @chaxus in #231
  • docs: bring NOTICE, the font docs and the test ledger up to today by @chaxus in #232
  • chore(lint): fail on warnings, and lint the scripts we actually ship by @chaxus in #233
  • refactor: one declaration for post, one file per language by @chaxus in #234
  • refactor(converter): split the 1130-line converter by what it knows about by @chaxus in #236
  • test: pin what the i18n split and the guard numbers were relying on by @chaxus in #237
  • refactor(e2e): one frame walk instead of twenty-three by @chaxus in #235
  • docs: record today's structure pass and the two rules it pinned by @chaxus in #238
  • test: ask both x2t loaders the same questions by @chaxus in #239
  • docs: the coverage ledger was counting gaps that had been filled by @chaxus in #240
  • test: four of the gaps the ledger was hiding by @chaxus in #241
  • test: five more of the gaps, and the fixture for an encrypted workbook by @chaxus in #242
  • test: the pdf editor's failure path, and size as a dimension by @chaxus in #243
  • test(corpus): export to PDF and lock the document, on files nothing else opens by @chaxus in #244
  • feat(embed): tell the host page when a document has unsaved edits by @tommasodinoia in #246
  • fix(ci): diagnose missing fork previews before installing browsers by @chaxus in #247
  • feat(agent): add experimental local document assistant by @chaxus in #249
  • feat(agent): make assistant opt-in with product-focused editing flow by @chaxus in #251
  • ci(e2e): balance Pages shards and isolate timing budgets by @chaxus in #252
  • fix(deps): upgrade vulnerable transitive dependencies by @chaxus in #253
  • feat(assistant): redesign chat panel and add multilingual dictation by @chaxus in #254
  • fix(assistant): validate editor tools and streamline review workflows by @chaxus in #255
  • feat(assistant): refine reviewed edits and add PDF assistance by @chaxus in #256
  • fix(assistant): refine sidebar resizing and copy feedback by @chaxus in #257
  • feat(assistant): improve document writing and inline task feedback by @chaxus in #258
  • fix(assistant): restore streaming and model preparation actions by @chaxus in #259
  • docs(readme): embed demo videos and move experimental AI sections by @chaxus in #260

New Contributors

Full Changelog: V0.0.7...v0.0.8

v0.0.6

Choose a tag to compare

@chaxus chaxus released this 02 Sep 01:59

What's Changed

  • fix(embed): send Editor.bin verbatim as a latin1 string so embedded WebViews can open documents (#113) by @chaxus in #115
  • ci(e2e-pages): serial workers, one retry, and a restart loop around wrangler pages dev -- workerd dies on aborted parallel downloads and blocked every PR by @chaxus in #121
  • feat(site): markdown page generator + /help, /help/embed-api, /changelog (en, zh-CN) by @chaxus in #116
  • docs: PR-only workflow in CLAUDE.md; roadmap direction 9 (ranui/ranuts alignment + IIFE drift); test: ranui vendoring sentinel by @chaxus in #118
  • ci(nightly): ranui/ranuts upstream version check in the step summary (roadmap direction 9, L3) by @chaxus in #119
  • perf(home): load the OnlyOffice DocsAPI script on demand instead of render-blocking the homepage by @chaxus in #120
  • feat(ui): light/dark/system switch in the FAB menu so the theme can change while editing by @chaxus in #123
  • content(embed): read-only / preview mode section and FAQ on the embed landing pages (en, zh-CN) by @chaxus in #124
  • test(v9): docx tracked changes and header/footer round trips; buildDocx grows header/footer parts by @chaxus in #126
  • feat(i18n): editor UI follows the visitor's language across all 45 vendor locales by @chaxus in #122
  • build(pages): render the markdown pages at build/dev time via a vite plugin instead of committing them by @chaxus in #128
  • docs(seo): explain CSV mojibake and the automatic GB18030/UTF-8 detection on the csv-to-xlsx pages by @chaxus in #125
  • feat(routes): static landing at / and the editor at /editor, with legacy deep-link redirects by @chaxus in #130
  • perf(open): intent-triggered prefetch of the editor engine (hover/focus on Open/New) by @chaxus in #127
  • test(e2e): app-smoke accepts the mounted DocsAPI iframe in place of the #iframe placeholder by @chaxus in #131
  • docs(changelog): one-pager for the 2026-08-16 roadmap sprint (route split, help center, i18n, WebMCP, PR flow) by @chaxus in #132
  • feat(agent): WebMCP adapter registers the editor's verbs as browser-agent tools by @chaxus in #129
  • docs: homepage LCP after the route split (774 ms -> 354 ms on production) by @chaxus in #133
  • chore(seo): refresh sitemap lastmod from git history (22 pages changed today) + bin/sitemap-lastmod.mjs by @chaxus in #134
  • feat(ui-crawl): implement UI crawl test for toolbar interactions and … by @chaxus in #135
  • feat(i18n): app shell in eight languages with per-key English fallback and RTL by @chaxus in #136
  • test(v9): UI crawl of every toolbar button; fix guard 8 (bulk comment actions without a selection) by @chaxus in #137
  • fix(analytics): never inject a second beacon when Cloudflare already injected one at the edge by @chaxus in #138
  • docs: local-LLM + tool-calling feasibility findings by @chaxus in #104
  • docs: sync CLAUDE.md guard list and E2E inventory by @chaxus in #140
  • chore(deps): bump GitHub Actions across every workflow by @chaxus in #143
  • chore(deps): bump ranui to 0.5.0-alpha.3 by @chaxus in #142
  • refactor(test): adopt ranuts zip helpers in the OOXML fixture library by @chaxus in #139
  • refactor(converter): adopt the ranuts binary utils by @chaxus in #141
  • fix(v9): retry an open once when the editor, not the document, failed (#144) by @chaxus in #146
  • fix(v9): give the slide the phone's screen and repaint a lost canvas (#145) by @chaxus in #147
  • fix(v9): await the font system instead of importing without it (#144) by @chaxus in #148
  • fix(v9): never leave the conversion waiting on a callback that will not come (#144) by @chaxus in #150
  • fix(v9): batch the retry-bytes release and the live compact layout (#144, #145) by @chaxus in #152
  • ci: bound every job, stop apt from hanging, and pin the wrangler compatibility date by @chaxus in #153
  • fix(docker): ship a cache contract so a pulled image actually reaches the browser (#144) by @chaxus in #154
  • refactor(editor): split the 1975-line onlyoffice-editor into a facade… by @chaxus in #155
  • ci: shard the three E2E suites and stop them waiting on lint by @chaxus in #156
  • feat(ui): remove the floating Menu button from the editor by @chaxus in #157
  • fix(ui): give the button host the radius its shadow is drawn on by @chaxus in #158
  • fix: deliver updates and open documents on constrained browsers (#144) by @chaxus in #159
  • fix(ci): make the production deploy gate wait for the build it is smoking by @chaxus in #160
  • perf(sw): serve the whole vendored editor cache-first, not just its binaries by @chaxus in #161
  • feat(seo): pages for PDF conversion and OpenDocument, plus llms-full.txt by @chaxus in #162
  • feat(web-mcp): add create_document and get_document_text, derive the format list by @chaxus in #163
  • ci: wait long enough for a Cloudflare preview, and say what a red one means by @chaxus in #164
  • perf(landing): warm the editor from the homepage while it sits idle by @chaxus in #165
  • perf(landing): warm all three editor engines, not just the shared core by @chaxus in #167
  • perf(fonts): send the font catalog compressed, and drop three dead configs by @chaxus in #168
  • ci(nightly): stop the corpus run reporting infrastructure noise as findings by @chaxus in #166
  • fix(fonts): replace 171 MB of proprietary faces, and give each script one family by @chaxus in #170
  • perf(vendor): drop the asm.js fallbacks, and pin what actually loads by @chaxus in #171
  • feat: autosave recovery points, a local history page, and a seven-day window by @chaxus in #172
  • fix(history): design the history page and the recovery card properly by @chaxus in #173
  • fix(fonts): revert the license sweep — it shifted every glyph on the live site by @chaxus in #174
  • feat(i18n): finish the six shell locales, not just their first 19 strings by @chaxus in #176
  • fix(history): confirm deletions in the design system's dialog, not the browser's by @chaxus in #175
  • docs(fonts): record why substituting the proprietary faces fails by @chaxus in #178
  • feat(save): write back into the document's own file instead of downloading a copy by @chaxus in #179
  • perf(history): derive the snapshot interval from what an export actually costs by @chaxus in #180
  • test(save): wait for the save to finish instead of racing it by @chaxus in #182
  • test(history): read the history database through one guarded reader by @chaxus in #183
  • docs(readme): translate the readme into the eight languages the site offers by @chaxus in #177
  • fix(history): stop interrupting the editor to offer old work by @chaxus in #181
  • fix(fonts): replace the 79 proprietary faces, by moving rows instead of files by @chaxus in #184
  • docs(fonts): one-pager for the font licensing work, plus the live numbers and the purge still owed by @chaxus in #186
  • perf(history): verify the adaptive interval actually backs off on slow devices by @chaxus in #185
  • refactor(landing): replace the card walls with typography and rules by @chaxus in #187
  • feat(landing): give content pages a sidebar rail instead of a wider column by @chaxus in #188
  • fix(editor): move a tab off an older build by itself, and stop flashing the home panel by @chaxus in #189
  • feat(history): a rail, a download action, and no cards on /history by @chaxus in https://github.com/ranuts/docume...
Read more

v0.0.5

Choose a tag to compare

@chaxus chaxus released this 12 Jul 02:07

What's Changed

  • feat: SW 更新后自动 reload + 隐私友好的 Cloudflare Web Analytics by @chaxus in #98
  • feat(converter): x2t WASM 走 gzip 客户端解压,解除 CF Pages 迁移硬阻塞 by @chaxus in #100
  • feat(seo): P0 landing pages batch 2 + shared landing stylesheet by @chaxus in #106
  • fix(copy): drop 'no telemetry' over-claim (RUM stays on) by @chaxus in #107
    #108

Full Changelog: v0.0.4...v0.0.5

v0.0.4

Choose a tag to compare

@chaxus chaxus released this 30 May 16:20
test: add SW routing tests covering font-interception crash prevention

Documents the fetch routing rules in public/sw.js that prevent the
OnlyOffice v7.5 units_per_EM crash:
- Font files (.ttf/.woff/.woff2/.otf/.eot) must bypass the SW to avoid
  added latency that triggers Chrome's font-loading intervention
- Document URLs (?src=, ?file=) bypass the cache to stay fresh
- Cross-origin and non-GET requests are not intercepted

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

v0.0.3

Choose a tag to compare

@chaxus chaxus released this 10 Jan 12:19
chore: update CI workflow to run TypeScript linting instead of genera…

v0.0.2

Choose a tag to compare

@chaxus chaxus released this 24 Nov 13:53
chore: clean up whitespace in UI component to improve code readability

v0.0.1

Choose a tag to compare

@chaxus chaxus released this 20 Nov 05:35
fix: add null check for performance.memory.usedJSHeapSize before send…