Date: 2026-03-11 Version: 0.2.7 Last release: v0.2.6.1 (2026-02-06)
This document covers what needs manual testing before tagging v0.2.7. Automated tests (1291 passing, 0 failures) cover the core logic; this plan targets UI behavior, platform-specific features, and the many new user-facing changes.
| Priority | Meaning |
|---|---|
| P0 | Must pass — blocks release |
| P1 | Should pass — significant regression if broken |
| P2 | Nice to verify — minor or cosmetic |
Test file: test_md/test_wikilinks.md (open inside test_md/ as workspace)
-
[[target]]syntax creates clickable link in Rendered/Split mode -
[[target|display text]]renders display text, navigates to target - Click navigates to the linked file (opens as new tab)
- Spaces in filenames work:
[[My Wikilink Note]] - Ambiguous targets show selection prompt
- Backlinks panel (side panel -> Backlinks tab) lists files linking to current doc
- Backlinks update when switching tabs
Test file: test_md/test_callouts.md
- All 5 callout types render with correct color/icon (NOTE, TIP, WARNING, CAUTION, IMPORTANT)
- Custom titles display correctly
- Collapsible callouts (
> [!NOTE]-) start collapsed and expand on click - Rich content inside callouts (bold, code blocks, lists) renders
- Regular blockquotes are NOT mistakenly rendered as callouts
Test file: test_md/test_vim_mode.md
- Enable in Settings -> Editor
- hjkl movement works in Normal mode
- dd, yy, p, x, dw commands work
- v/V visual selection works
- /search works
- i, a, o, O enter Insert mode
- Escape returns to Normal mode
- Status bar shows mode indicator ([NORMAL], [INSERT], [VISUAL])
- Ctrl+ shortcuts (Ctrl+S, Ctrl+Z, Ctrl+C, Ctrl+V) still work in all modes
Test file: test_md/test_zoom.md
- Ctrl+Scroll Up/Down zooms in/out
- Ctrl++/Ctrl+- keyboard zoom works
- Ctrl+0 resets zoom
- Normal scroll (without Ctrl) is unaffected
- Settings -> About -> "Check for Updates" button works
- Shows "up to date" when on latest version
- Shows download link when update available (test with older binary)
- Handles network error gracefully (disconnect wifi and try)
Test file: test_md/test_welcome_page.md (follow instructions)
- Appears on first run (delete config folder)
- All configuration widgets function
- "Get Started" closes the welcome tab
- Does not appear on subsequent launches
- Does not appear when opening with file arguments
Test file: test_md/test_frontmatter.md
- FM tab appears in outline panel
- All YAML fields render as form widgets
- Editing a field updates the source YAML
- Editing the source YAML updates the panel
- Tags render as chip/pill UI
Test file: test_md/test_single_instance.md
- Double-clicking a file in Explorer opens it in existing Ferrite window
- No new Ferrite process is spawned
- File opens near-instantly (<100ms)
- Multiple rapid opens all work
- Lock file cleaned up on exit
Test file: test_md/test_complex_scripts.md
- Arabic, Hebrew, Devanagari, Thai, etc. render correctly (no tofu)
- Font loads lazily on demand
- Font preferences in Settings -> Appearance -> Additional Scripts work
- Open any .md file, select text
- Click Bold (or Ctrl+B)
- Text stays selected after formatting
- Editor retains focus
- Can immediately apply Italic (Ctrl+I) without reselecting
- Format toolbar is at bottom of raw editor (not in ribbon)
- Chevron toggle collapses/expands the toolbar
- Visible in Raw and Split modes for .md files
- Hidden for non-markdown files
- Thin toggle strip on right edge of editor
- Click opens/closes side panel
- Tabs: Outline, Statistics, Backlinks, Productivity Hub
- Always visible for all editor tabs
- Non-markdown files show two modes (Raw | Rendered)
- Markdown files show three modes (Raw | Split | Rendered)
- Close, Minimize, Maximize, Fullscreen buttons render correctly
- Hover states work (red hover on close button)
- NE corner resize works without conflicting with buttons
- On Hyprland/Sway/i3 without portal: shows helpful error modal
- Error includes distro-specific install instructions
Test file: test_md/test_scroll_perf.md
- Enable word wrap in settings
- Scroll through large file — no jumps or position loss
- Click on a line — cursor goes to correct position
- Ctrl+G (go to line) goes to correct line
- Open a binary file (e.g., a .png or .exe) — no crash
- Binary content detection shows warning
Test file: test_md/test_ime_input.md
- IME input (Chinese, Japanese) works
- Backspace during IME composition works correctly
-
cargo wixbuilds successfully locally - MSI installs correctly
- Feature selection UI shows (file associations, context menu, PATH, shortcuts)
- File associations register in "Open With" menus
- Context menu entries appear in Explorer
- Start Menu shortcut created
- "Launch Ferrite" checkbox on exit dialog works
- Uninstall removes all registry entries cleanly
- Upgrade from portable to MSI doesn't lose settings
- Portable zip contains ferrite.exe + portable/ folder
- Settings stored in portable/ subfolder (not AppData)
- .paf.exe installs in PortableApps platform
- Settings stored in Data\settings\
- Version displayed correctly
- CI signs all Windows artifacts (zip, msi, paf.exe)
- No SmartScreen warnings on download/install
- ARM64 and Intel builds produce .app bundles (not raw binaries)
- Gatekeeper doesn't block unsigned .app (or shows standard dialog)
- .icns icon renders in Finder and Dock
- Installs on Ubuntu/Debian
- Desktop entry works (shows in application launcher)
- Icons appear at correct sizes
- Installs on Fedora/RHEL
- Same checks as .deb
- Flathub manifest updated (see Flathub section below)
- Test build passes on Flathub CI
- Open Folder works in sandboxed Flatpak
-
nix build .#ferritesucceeds -
nix run github:OlaProeis/Ferriteworks (after push)
The release workflow has significant changes since v0.2.6.1:
- Windows: Builds exe + portable zip + MSI + PAF installer
- Windows signing: SignPath signs all 3 Windows artifacts
- Linux: Builds tar.gz + .deb (cargo-deb) + .rpm (cargo-generate-rpm)
- macOS ARM64: Builds .app bundle via cargo-bundle
- macOS Intel: Cross-compiles .app bundle for x86_64
- Release job: Downloads all artifacts and creates GitHub Release
- Added cargo-wix MSI build step
- Added PortableApps.com PAF build step (NSIS + Pillow icons)
- Added cargo-deb and cargo-generate-rpm for Linux
- Added macOS Intel cross-compilation job
- Added Nix CI workflow (nix.yml)
Per docs/flathub-maintenance.md, before merging the Flathub PR:
- Version is
0.2.7inCargo.toml(confirmed: yes) -
CHANGELOG.mdhas v0.2.7 entry (confirmed: yes, dated 2026-03-06) -
metainfo.xmlhas new<release version="0.2.7" ...>entry (NEEDS UPDATE) - Screenshot URLs use the new tag
v0.2.7(notmaster)
- Update
tag:fromv0.2.6.1tov0.2.7 - Update
commit:hash to the tagged commit - Regenerate
cargo-sources.json(Cargo.lock has 155 lines of changes) - Create PR, wait for test build to pass
- Merge after GitHub Release is published
- Open, edit, save a file
- Undo/Redo (Ctrl+Z, Ctrl+Y)
- Find/Replace (Ctrl+F, Ctrl+H)
- Multi-cursor (Ctrl+Click)
- Code folding
- Bracket matching
Test file: test_md/test.md
- Bold, italic, code, headings render correctly in Split/Rendered mode
- Code blocks with syntax highlighting
- Tables render properly
- Lists (ordered, unordered, nested)
- Images render (if local path exists)
- Links are clickable
- JSON tree viewer (open a .json file)
- YAML tree viewer (open a .yaml file)
- TOML tree viewer (open a .toml file)
- CSV viewer with
test_md/test_data.csv - TSV viewer with
test_md/test_data.tsv - Column resizing in CSV viewer
Test file: test_md/test_flowcharts.md
- Flowcharts render
- Other diagram types (if test files exist)
- Open a folder — file tree appears
- Git status indicators in file tree
- File watcher auto-reloads changed files
- Integrated terminal opens
- Can run commands
- Split/tile layouts work
- Close Ferrite with multiple tabs open
- Reopen — tabs are restored
- Scroll positions restored
- Unsaved changes preserved (if auto-save enabled)
- Borderless window with custom title bar works
- Window snapping (Win+Arrow) works
- High DPI rendering
- .app bundle launches from Finder
- Apple Events (open file via Finder) work
- Menu bar integration
- X11 and Wayland both work
- File dialogs work (native or portal-based)
- Flatpak sandbox permissions sufficient
If you only have 5 minutes, do this:
cargo run— app launches without errors- Open
test_md/test_callouts.md— callouts render correctly - Switch to Split view — both panels sync
- Type some text — editor responsive
- Ctrl+B on selected text — stays selected
- Ctrl+Scroll — zooms in/out
- Open
test_md/test_wikilinks.mdin workspace mode — wikilinks work - Enable Vim mode — basic hjkl + dd + i/Escape work
- Close and reopen — session restored
- Check Settings -> About -> "Check for Updates"