Roadmap and known limitations
Delivered foundation
The current source implements separate model/history and DOM input, source/visual Markdown and HTML, plain source languages, rich policy, nested lists/tasks, pipe/HTML tables, image references/import callbacks, rich clipboard paths, guarded save snapshots, bookmarks/transactions, synchronized resizable preview, custom preview HTML/preprocessing, preview-only CSS, and a reusable .NET 10 WinForms control with a local NuGet package.
Earlier milestone notes that list tables, images, typed WinForms integration, source formatting shortcuts, or preview hooks as wholly deferred are historical. They should not be used as the current feature list.
Correctness fixes delivered in 0.4.0-preview.2
- Explicit native enum mappings, including JavaScript
javascript. - Optional range revision omitted on the wire; null is normalized as absent by JavaScript.
- Empty native clipboard paste preserves selected content.
- Explicit Markdown Source bold/italic state is idempotent.
- Empty display strings clear label, font and placeholder.
Focused Node and packaged native regressions cover these contracts. See verification for actual evidence and unexecuted gates.
Release acceptance work
- Validate IME, mobile keyboards, screen readers and native selection on target devices.
- Exercise real Word/Outlook/browser/spreadsheet clipboard combinations and image drop/paste gestures.
- Build a runnable Photino host for the actual Photino version and verify its platform engines.
- Expand the Markdown/HTML corpus around nesting, delimiters, escaped table pipes, unsupported constructs and round trips.
- Profile representative large documents/tables and confirm practical product limits.
- Review deployment/recovery on clean machines and confirm asset portability across Olympus/web/native hosts.
Historical recorded checks are a baseline, not a substitute for these gates. Fixes should add coverage at the boundary that failed rather than merely increasing unrelated test counts.
Secondary features
| Area | Candidate work | Design consideration |
|---|---|---|
| Search | Regex, richer replace UI, rich-mode Replace All | Preserve structure and make replacement semantics explicit |
| Source editing | Active line, bracket UI, folding, multiple cursors, completion | Bracket helper exists; full UI/language service does not |
| Formatting | Arbitrary content fonts/colors/sizes, picker controls | Keep storage policy and clean Markdown compatibility explicit |
| Tables | Column widths, richer cell selection, more HTML import cases | Merged/nested/multi-block cells require schema and serialization work |
| Images | Captions, resizing, richer placement, asset browsing | Host remains asset owner; define portable serialization |
| Preview | Host-provided source maps for transformed/custom HTML | Allows exact synchronization beyond proportional following |
| Markdown | Broader CommonMark/GFM conformance, extensions | Add fixtures and avoid silently changing saved documents |
| Native host | Better crash recovery, richer clipboard helpers, richer capability types | Preserve natural typed API and queue semantics |
| Packaging | Public feed/release process, versioning/license metadata review | Current package is local preview; no public publication performed |
| AI | Host prompt/review UI, streaming suggestions, guarded apply | No provider dependency in core; stale results must not overwrite user edits |
Architectural work for large-scale editing
Viewport virtualization, incremental parsing/colorizing, more efficient text storage, background work, and a custom input/caret surface are separate architectural milestones. The current adapter/model separation helps, but native composition, accessibility and mobile behavior must be preserved. Do not make those changes merely to imitate an IDE when the actual note sizes do not require them.
Collaboration/CRDT, multiplayer cursors, operational transformation, durable undo history, and server-side merge are not implemented. A local revision guard prevents stale operations in one session; it does not solve multi-user concurrency.
Limits to communicate to product owners
- The rich document schema is constrained, and arbitrary HTML cannot be edited losslessly.
- Clean Markdown cannot represent arbitrary fonts/sizes/colors or underline through standard syntax.
- Unchanged source can be retained; editing may normalize the affected serialization.
- Images are currently block objects and need host-backed storage for file imports.
- Validated saves can be blocked by policy violations or unresolved images, including preserved unsupported content.
- Preview customizations affect display, not saved source; arbitrary custom output lacks exact source mapping.
- Search is literal and Replace All is Source-only.
- The editor has size/history bounds but no large-document responsiveness guarantee.
- Mobile and Photino are integration targets with outstanding acceptance work.
Keep this list synchronized with implementation and test evidence as work is completed. The main documentation index should remain the single starting point, with details maintained in these separate topic documents.