docs/internal/docs-audit-0.2.13.md
Audit date: 2026-03-06
This document classifies all docs by status and lists items that need manual/thresh validation before the documentation can be considered correct.
docs/architecture.md — KEEP at top levelThis is the main entry point for developers who want to learn how Fresh is
built. It's developer-facing but intentionally prominent. It may need updates
(e.g. for the plugin registerHandler() pattern, hanging line wrap in the
rendering pipeline, BulkEdit in the event model) but should stay where it is.
docs/internal/design-decisions.md coalesces the key decisions, trade-offs,
and rationale from all shipped design docs into a single audit trail. This
preserves the why behind architectural choices without requiring readers to
find and cross-reference 20+ individual files.
15 shipped design documents have been removed. Their key decisions,
trade-offs, and rationale are preserved in design-decisions.md:
timesource-design.md, bulk-edit-optimization.md, cli-redesign.md,
FUZZY_FILE_FINDER_UX.md, encoding-support-design.md, paste-handling.md,
session-persistence-design.md, i18n-design.md,
per-buffer-view-state-design.md, config-design.md,
config-implementation-plan.md, plugin-architecture-plan.md,
vi-mode-design.md, warning-notification-ux.md,
markdown-compose-vs-glow.md
SSH_REMOTE_EDITING_DESIGN.md (removed) — kept ssh-remote-editing-design.mdPLUGIN_MARKETPLACE_DESIGN.md (removed) — kept plugin-marketplace-design.mdActive design/planning docs (in progress):
| File | Status |
|---|---|
code-tour-design.md | Implementation phase; needs 4 new plugin API methods |
config-editor-design.md | Design phase; built-in settings UI to replace plugin |
UNIFIED_UI_FRAMEWORK_PLAN.md | In progress; extract shared controls library |
ISSUES_IMPLEMENTATION_PLAN.md | Active; 14 prioritized bugs/improvements |
markdown.md | Remaining compose mode work (column guides, context-sensitive Enter) |
io-separation-plan.md | In progress; WASM compatibility refactoring |
visual-layout-unification.md | Design complete; awaiting prioritization |
input-calibration-wizard.md | Design complete; implementation pending |
plugin-marketplace-design.md | Phase 1 done; Phase 2+ pending |
ssh-remote-editing-design.md | Design complete; implementation phases pending |
finder-abstraction.md | Plans 87% code reduction across finder plugins |
diff-view.md | Partially implemented; CompositeBuffer architecture |
scroll-sync-design.md | Partially implemented; marker-based sync |
editor-state-refactoring.md | Partially complete; remaining extractions |
search-next-occurrence.md | Design (not yet shipped) |
theme-consolidation-plan.md | Design (not yet shipped) |
typora-seamless-canvas-plan.md | Remaining compose implementation details |
Process & quality docs:
| File | Purpose |
|---|---|
code-review.md | Code quality issues list (31+ items); refactoring debt tracker |
testing.md | Testing guidelines; EditorTestHarness docs |
usability-test-plan.md | Usability testing methodology |
plugin-usability-review.md | Plugin UX bugs and improvements (P0-P2) |
settings-controls-usability-report.md | Settings UI bugs; critical data loss issue |
settings-modified-indicator-design.md | Modified indicator semantics fix |
INPUT_LAYOUT_RENDERING_SUMMARY.md | Architecture analysis; refactoring opportunities |
Reference docs:
| File | Purpose |
|---|---|
event-dispatch-architecture.md | Hit testing evolution plan (3 phases) |
terminal.md | Incremental scrollback architecture |
theme-user-flows.md | User flow documentation for theme system |
theme-usability-improvements.md | Priority matrix from usability testing |
unicode-width.md | Unicode width handling reference |
remote-filesystem-optimization.md | Remote FS optimization strategies |
docs/features/lsp.md — HIGH priorityMissing documentation for:
language_id_overrides in LSP server
configrestartLspForLanguage plugin API (0.2.13)registerLspServer (0.2.13)docs/features/editing.md — HIGH priorityMissing documentation for:
auto_close toggle, per-language
overrides via languages.<lang>.auto_close[RO] status bar indicatorAlso has leftover TODO comments on lines ~105, ~107.
docs/features/themes.md — MEDIUM priorityMissing:
whitespace_indicator_fg theme color (0.2.11)docs/features/command-palette.md — MEDIUM priorityMissing:
path:line[:col] syntax in Open File prompt
and Quick Opendocs/plugins/index.md — HIGH priorityMissing:
registerHandler() (0.2.13) — replacing globalThis patternrestartLspForLanguage and async reloadGrammars() (0.2.13)createTerminal, sendTerminalInput,
closeTerminal, getAllCursors, plugin state APIdocs/configuration/index.md — MEDIUM priorityMissing from editor settings reference:
auto_close toggle and per-language overrides (0.2.12)auto_surround config (0.2.12)language_id_overrides (0.2.13)show_status_bar toggle (0.2.13)diagnostics_inline_text setting (0.2.13)docs/features/file-explorer.md — LOW priorityMissing:
docs/features/terminal.md — LOW priorityMinor:
docs/getting-started/index.md — LOW prioritypath:line:col syntax examples and a mention of session
mode (fresh -a)docs/architecture.md — LOW priorityMay need updates for:
registerHandler() plugin pattern (replacing globalThis)BulkEdit event type in the Action → Event sectionBlog posts are point-in-time snapshots. They are accurate for the versions they describe and don't need retroactive updates.
Each item below should be confirmed to work as documented (or as we plan to document) before publishing updated docs.
"env": {"FOO": "bar"} to an LSP server config in
config.json, verify the LSP process receives it (e.g. use a shell wrapper
that prints env)"language_id_overrides": {"tsx": "typescriptreact"}
and verify the LSP receives the overridden language ID on textDocument/didOpen"auto_close": false in config, verify
brackets/quotes no longer auto-close. Test per-language override:
"languages": {"markdown": {"auto_close": false}}( — verify it wraps to
(selection). Test with [, {, ", '" —
verify it inserts one quote, not two/usr/include or a rustup toolchain
path — verify [RO] appears and edits are blocked. Test "Toggle Read Only"
command to override"whitespace": {"space": {"leading": true, "inner": false, "trailing": true}} — verify dots appear only in
leading/trailing positionswhitespace_indicator_fg: Add this key to a custom theme, verify
whitespace indicators use the custom color.ts file with plugin code, run
"Load Plugin from Buffer" command — verify plugin activates. Edit the file,
verify hot-reload worksfresh. should autocomplete API
methods)registerHandler(): Write a plugin using registerHandler() instead
of globalThis, verify it worksrestartLspForLanguage(): Call from a plugin, verify the LSP for that
language restartsreloadGrammars(): Call async reloadGrammars() from a plugin,
verify syntax highlighting refreshesprocess_limits in registerLspServer() config,
verify the LSP process respects memory/CPU limitssrc/main.rs:42 in Open File prompt — verify it
opens the file at line 42. Test src/main.rs:42:10 for column positioning| Priority | Category | Items |
|---|---|---|
| High | Doc updates | features/lsp.md, features/editing.md, plugins/index.md |
| Medium | Doc updates | features/themes.md, features/command-palette.md, configuration/index.md |
| Low | Doc updates | features/file-explorer.md, features/terminal.md, getting-started/index.md, architecture.md |
| Done | Internal reorg | Unified design-decisions.md created; duplicates removed |
| Validation | Thresh/manual | 25 test items across 5 categories |