Changelog
- afe8fb0 Merge pull request #1086 from adriandeleon/chore/release-prep-0.21.0
- 29f850d Merge pull request #1087 from adriandeleon/fix/dist-plugin-order
- ca69e7d fix(build): run moditect before the dist module-path assembly
- e3fb2fe chore: prepare Editora 0.21.0 release
- 76129af Merge pull request #1085 from adriandeleon/test/macos-windows-lanes
- 4fafa9a test: fix the last macOS FX and Windows failures on the advisory lanes
- c184113 Merge pull request #1084 from adriandeleon/fix/snippet-tab-vs-completion
- d31a867 Merge remote-tracking branch 'origin/master' into fix/snippet-tab-vs-completion
- 9186d8f Merge pull request #1082 from adriandeleon/fix/history-shutdown-race
- b6959e3 test(editor): the shebang test waits for the asynchronous Run-glyph scan
- 10b57b7 Merge remote-tracking branch 'origin/master' into fix/history-shutdown-race
- e0cbb12 Merge pull request #1083 from adriandeleon/ci/macos-fx-and-retries
- 39dea96 fix(snippets): a typed trigger is not taken over by another completion
- 5c3afd0 ci: rerun failing tests and report the flakes; fix three macOS-only test failures
- afcc548 fix(history): a shutdown from another thread waits for a result still being handed over
- 6bc9e73 Merge pull request #1081 from adriandeleon/perf2/integration
- ff1ba1f fix(run): Run and Debug land the load's background scan before deciding how to launch
- 95e1193 test(editor): wait for the asynchronous Run-glyph scan after a load
- 679fa0e docs(changelog): the performance pass over typing, opening, tabs, memory and startup
- f58c1f6 Merge branch 'perf2/startup-ui' into perf2/integration
- df399e8 test(ui): read the Gradle build script through SpringBoot
- 0daea03 refactor(editor): move overlay layers and image drops out of EditorBuffer
- 5a0f508 refactor(ui): keep MainController under the source-size limit
- 3519b34 Merge branch 'perf2/restore' into perf2/integration
- ac51d2a refactor(ui): move tab header rendering and drag reordering to TabHeaders
- 703fe9a Merge branch 'perf2/startup-bg' into perf2/integration
- 2e5b6ab perf: keep the show path free of startup probes, repeated refreshes and FX-thread I/O
- aef4358 Merge branch 'perf2/editing' into perf2/integration
- 78de841 perf(editor): take the fold scan, dirty compare and gutter churn off the keystroke and tab-switch paths
- bbe869e perf(startup): keep the Debug panel unbuilt through the startup INACTIVE state
- 9beac86 Merge branch 'perf2/open' into perf2/integration
- a97d881 Merge branch 'perf2/tabs' into perf2/integration
- 797e866 Merge branch 'perf2/memory' into perf2/integration
- 6889b50 Merge branch 'perf2/minimap' into perf2/integration
- 5b903fd Merge branch 'perf2/fork' into perf2/integration
- 92d7eeb perf(editor): attach feature overlays and popups on first use, release what a hidden tab keeps
- 8fe1627 perf(editor): vendor RichTextFX 0.11.7-inlay.2 (cell height cache, copy-free getText)
- 6f5b09d perf(open): move the remaining open-path document work off the FX thread
- 80c7a33 perf(startup): build tool-window panels on first open
- ded6648 perf(startup): defer most bundled fonts past first paint and ship stylesheets as .bss
- 8d98618 perf(minimap): draw per pixel row, keep hidden tabs' pixels, pace edit renders
- 1ef5c94 perf(session): build restored tabs after first paint as placeholders
- 1cbedd8 perf: prune long-session caches when a file's last tab closes
- 4ac2c4e perf: bound the text held by the agent transcript, test results, CSV grids and the SVG cache
- 5ce5bf3 perf(editor): share one undo-queue text budget across all documents
- 86ad153 perf(editor): keep the saved baseline as a length and fingerprint
- 5925c27 Merge pull request #1077 from adriandeleon/fix/help-text-single-window
- 6733dbe fix(cli): put --single-window's continuation line under --single-window in --help
- d6ce8ec Merge pull request #1074 from adriandeleon/docs/readme-landing-page
- 7e5a3f0 Merge pull request #1075 from adriandeleon/feat/code-lens-opens-references
- 0ff0f1b Merge remote-tracking branch 'origin/master' into feat/code-lens-opens-references
- 22736fa Merge remote-tracking branch 'origin/master' into docs/readme-landing-page
- d758964 Merge pull request #1076 from adriandeleon/fix/file-history
- 3f91eec test(git): wait for the commit list's cells before asking a row for its menu
- 82651e0 refactor(history): the config half of the history Ops leaves MainController
- 2ac0585 docs(changelog): Local History and Git history fix pass
- ae4ac45 Merge fix/file-history-coordinator
- 25d9c69 test(history): wait for the revision, not the dirty flag, after saving a clean buffer
- dfb8178 fix(history): what Local History records, restores and reports
- eeead6b fix(history): the panel filter matches the shown reason through HistoryQueries
- 55417e5 Merge origin/master into fix/file-history
- b310eae Merge fix/file-history-naming
- c7aebf3 docs(history): describe Local History and Git history as they are now
- f7b71a2 fix(keymap): bind both histories of a file in every bundled keymap
- fc7213a fix(history): Local History in the menu bar and on a tab; its command toggles
- d093ccc fix(history): name the two histories apart — Local History and Show Git History
- e2ce26e Merge fix/file-history-engine
- 9102a6d test(history): a backup that appears mid-session is noticed by the next publication
- 427aac5 fix(history): keep totalBytes the cheap row sum; storedBytes counts distinct bodies
- c9aa358 fix(lsp): make code lenses clickable; a references lens opens the References window
- 55275a1 docs(history): describe the index ledger, backup protection and shutdown order
- ab54a6f feat(history): helpers for keying history by the file rather than its spelling
- dc433b4 fix(config): leave Local History out of Export Configuration
- 89c7ed0 Merge fix/file-history-panel
- 6948604 fix(history): make the Local History panel keyboard-usable, truthful and compact
- 8df224f feat(history): pure row-text helper for the Local History panel
- faba7d9 fix(history): keep the index's books as it changes, and collect only on what the disk says
- 95774c9 docs: turn the README into a short landing page that defers to the website
- e182a35 Merge fix/file-history-git
- 6ed027a fix(git): a file history that pages, searches across renames and acts on the file
- 3b390a0 fix(git): keep the repository on a diff tab, and list a tab's history in its own repository
- 0e531ce fix(git): requests for paging and searching a file history
- fe0b4e2 Merge pull request #1073 from adriandeleon/fix/lsp-stale-percent-status
- 6af8800 fix(lsp): drop a bare-percentage progress end from the echo area
- 4df6e9b Merge pull request #1072 from adriandeleon/fix/store-shape-pin-workspace-v14
- deadb5b test(config): pin the workspace store shape at schema v14
- 95cbc5f fix(history): sync revision bodies and collect what a killed write left behind
- e62b936 fix(history): count each stored body once and cap a large file's share of the budget
- f73f26c fix(history): let the filter match the reason as the list shows it
- 3e114aa Merge pull request #1071 from adriandeleon/fix/sync-github-account
- 99b4abe Merge origin/master into fix/sync-github-account
- cfe59f3 Merge pull request #1070 from adriandeleon/test/pin-workspace-schema-14
- 919dadb fix(sync): sign in as the gh account that can read the repository
- 913336f test(config): pin the workspace store's schema-14 shape
- 4679cea chore(claude): allow gh pr merge without a prompt
- b8847ad Merge pull request #1069 from adriandeleon/test/coverage-90
- b98a53c Merge pull request #1068 from adriandeleon/feat/branch-dropdown-collapse
- 5facb3a feat(git): collapsible sections in the branch dropdown; larger, actions first
- 0ddfe72 test(testrunner): give each run's report a later modification time
- d6125e2 test(editor): page in view mode from a caret that is on screen
- 709c1a5 Merge pull request #1067 from adriandeleon/feat/references-syntax-highlight
- 98fc130 feat(lsp): syntax-color the References previews like the editor
- adb0727 Merge pull request #1066 from adriandeleon/test/coverage-pass
- 1cf1f97 build: hold the build at 90% lines and methods, and ratchet the package floors
- 4f2dd2d test(editor): wait for the area to lay out before paging in view mode
- adbf254 Merge test/coverage-pass
- 0f07493 Merge worktree-agent-a02e220a45181d10f
- 001e220 test(window): cover the Project tree's actions on the window and the preview slot
- a789dcb test(debug): wait for Save As to be settled before closing the tab
- 69a921c test(window): cover the toolbar buttons, the menu bar, previews and project settings
- 0ee328e test(window): cover window bounds, cascade, Ctrl+wheel zoom, unsaved-settings reports and a cancelled quit
- c967d8f test(commands): answer every palette prompt that changes a setting
- 46de24e test(window): cover the tab strip and the Settings pages against a real window
- 89fb24c test(window): sweep every adapter a window hands out and cover its side of the coordinators' contracts
- 74d56c5 Merge editing and tool-panel coverage tests
- b2f43f1 Merge git, diff and history coverage tests
- bf02643 test(logviewer): the palette commands, the level picker and the off-thread filter
- c3cebe9 test(search): the Find-in-Files popup's searches, refusals, rows and opening
- 00ab560 Merge integrations coverage tests
- 58fe0e7 Merge project and navigation coverage tests
- 9babac1 Merge debug, run and test-runner coverage tests
- 8c33bad test: saved-macro commands in a window; Swagger 2 and malformed API descriptions
- c073293 test(agent): wait for the reply to start before cancelling a turn
- a25a5a4 test(git): cover the stash form, pickers, stale-list refusals and failed applies
- c1ca7b2 test(debug,run): cover breakpoint feedback, thread selection and the run service's guards
- b1bbda4 test(app): cover argument edge cases and launches handed to a running editor
- 0af7052 test(build): cover the build tasks tree's rows, keys, mouse and toggles
- 8e37fd5 test(typst): ren ...