Andon
Tout fonctionne-t-il normalement ? Sinon, où se situe le problème ?
Quatre couleurs donnent la réponse en un coup d’œil. Derrière chacune, notes, pièces jointes, versions antérieures et pistes écartées conservent l’historique des décisions. L’ensemble des données reste sur votre poste.
Gratuit et open source · Windows et Linux · sans création de compte
Une vue d’ensemble immédiate
Les couleurs remontent des tâches jusqu’aux projets : la liste des projets indique à elle seule où porter votre attention.
Aucune information perdue
Les pistes abandonnées restent visibles en rouge, avec leurs motifs. Les notes conservent leurs versions antérieures.
Le contexte au plus près du travail
Chaque tâche dispose de ses notes, de ses pièces jointes et de son historique : la justification d’une décision reste à portée de main.
Vos données sous votre contrôle
Andon fonctionne sur votre poste. Aucun compte, aucun serveur, aucun abonnement.
Vous qualifiez les tâches, Andon consolide le reste.
Toute nouvelle tâche est blanche. Un projet entièrement blanc n’a simplement pas encore démarré.
Le vert ne signifie pas « terminé » : sur une ligne de production, un voyant vert indique que le poste fonctionne, et non qu’il est à l’arrêt.
L’état le plus important au quotidien : une seule tâche orange suffit à faire passer sa tâche parente et son projet à l’orange.
Mise de côté avec ses motifs, pour être reprise dans un contexte plus favorable. Le rouge constitue une mémoire, pas un échec.
Un an plus tard, les motifs sont toujours documentés.
L’approche A, une mise à jour en place, a corrompu les données de test. Elle est passée à l’orange le temps de l’analyse, puis au rouge, motifs à l’appui. L’approche B a pris le relais et le projet est repassé au vert.
Lors de la migration suivante, une recherche sur « mise à jour en place » retrouve l’approche A. Vous relisez les raisons de son abandon, vérifiez si l’éditeur a corrigé le ticket 1182, et décidez en quelques minutes.
Une tâche supprimée ne transmet plus aucun enseignement.
L’exemple complet, au chapitre 13- Motif de l’arrêt
- L’outil de mise à jour a corrompu 3 % des lignes de la copie de test.
- Contexte
- Outil en version 4.2, aucun contrat de support, deux semaines avant l’échéance.
- Conditions de reprise
- Correction du défaut par l’éditeur (ticket 1182) ou signature d’un contrat de support.
Tout ce que couvre le guide
Décomposez le travail au niveau de détail nécessaire. La couleur d’une tâche se déduit de celles qu’elle contient.
Le motif d’un état orange ou rouge : ce qui est attendu, la raison de l’arrêt, les conditions de reprise.
Tableaux, images, blocs de code, liens entre tâches, recherche et remplacement, correcteur orthographique.
Chaque note conserve ses versions antérieures : comparez-les et restaurez celle de votre choix.
Joignez des fichiers à une tâche, comparez plusieurs tâches côte à côte, synchronisez un dossier de fichiers Markdown.
Des listes de contrôle simples, et des tableaux dont les cartes suivent une définition de « terminé ».
Retrouvez tout projet ou toute note, archives comprises. Un projet terminé est archivé, jamais supprimé.
Constituez un projet à part entière à partir de quelques tâches, qui restent partagées avec le projet d’origine.
draw.io pour formaliser le parcours d’une tâche, le Yi Jing pour prendre du recul face à un changement.
Des fichiers SQLite locaux, des sauvegardes, une procédure de récupération et une migration simple vers un nouveau poste.
Changement immédiat, sans redémarrage.
Vérification depuis les Préférences, téléchargements différentiels, sans réinstallation.
Andon v1.9.1
Application autonome : aucun environnement .NET à installer. La procédure d’installation détaillée figure au chapitre 2 du guide.
- v1.9.1 Correctif Leave the archive with the Back arrow instead of a green button
- v1.9.1 Maintenance V1.9.0 changelog, draw.io plugin 1.1.2, Yi Jing plugin 2.0.2
- v1.9.0 Correctif Make the emoji field a small box
- v1.9.0 Correctif Call a task held by several projects « multi-projets », not « partagée »
- v1.9.0 Correctif Say « projet dérivé » instead of « branche » in French
- v1.9.0 Correctif Log failures in async handlers instead of closing the app
- v1.9.0 Refonte Name theme keys with constants instead of strings
- v1.9.0 Maintenance Tell vpk the Windows package is x64
- v1.9.0 Maintenance Tell vpk the Windows package is x64
- v1.8.9 Nouveauté Create tasks, todo lists and Kanban boards from the popover
- Consulter l’historique complet des versions
Windows 10 ou 11, 64 bits. Aucun droit d’administrateur requis.
Installation sous Windows
%AppData%\Andon
Toute distribution 64 bits avec environnement de bureau. Aucun privilège root requis.
Installation sous Linux
sudo apt install libgtk-3-0 libnss3 libatk1.0-0 libgbm1
sudo apt install libfuse2 # AppImage uniquement
chmod +x Andon*.AppImage ./Andon*.AppImage
tar -xzf Andon*.tar.gz ./Andon.UI
~/.config/Andon
Tous les fichiers publiés ▸
Le parcours et les changements
Installation et mises à jour depuis Préférences › Gérer les extensions, directement dans Andon. Le chapitre 14 en détaille l’usage.
Ajoute un onglet Diagramme à chaque tâche, propulsé par un éditeur draw.io intégré. Chaque tâche conserve son propre diagramme, enregistré automatiquement pendant l'édition.
Consultez l’oracle Yi Jing depuis n’importe quelle tâche. Tire un hexagramme selon la méthode traditionnelle à 3 pièces et enregistre la lecture — glyphe, nom et jugement — directement dans les notes de la tâche.
Installation manuelle : créez un sous-dossier dans %AppData%\Andon\plugins, copiez-y le fichier .dll, puis redémarrez Andon.
Notes de version
- Leave the archive with the Back arrow instead of a green button
- V1.9.0 changelog, draw.io plugin 1.1.2, Yi Jing plugin 2.0.2
- Make the emoji field a small box
- Call a task held by several projects « multi-projets », not « partagée »
- Say « projet dérivé » instead of « branche » in French
- Log failures in async handlers instead of closing the app
- Name theme keys with constants instead of strings
- Tell vpk the Windows package is x64
- Tell vpk the Windows package is x64
Versions antérieures ▸
- Create tasks, todo lists and Kanban boards from the popover
- Add the + New Task button and its popover
- Move the note's save status to the toolbar
- Show the diagram's page count on the Diagram tab
- Add Followed up and Properties to the task row menu
- Add a task Properties dialog with current and history tabs
- Show a signal on blocked and called-off tasks missing a reason
- Keep status history through archive, delete and search
- Record status changes and blocker episodes
- Add status history and episode tables
- Type column, content icons and plugin row indicators
- Add five light themes with borders, shadows and hollow To do dots
- Bring task names closer to their dots, center the signal
- Review fixes for the mockup alignment
- Close the gaps with the light theme mockups
- Theme the right-click menus, add the row's own actions
- Lay out the Properties dialog like the mockup
- Keep the signal button's tint, ring it while Properties is open
- Remove the bottom bar's creation controls
- Draw.io plugin 1.1.1
- Read each plugin's row icon once per rebuild
- Test: cover the untested classes and the reachable gaps
- Docs: add the user guide
- Make the Tasks tab and project open fast
- Show last modification date instead of deadline in column header
- Audit fixes for shared tasks, notes safety, last_update and load performance
- Language change note says it applies immediately
- Label compare date 'Last modified' and only bump last_update on real changes
- Remove deadlines
- Remove the unused ReorderTasksDialog
- Test(tasks): drop the removed deadline argument from two CreateTask calls
- Deleting a task only removes it from the project it is deleted from
- Branch by pointer, like a git branch
- Copy any tasks of the project into a branch
- Branch a project from a task or subtask
- Keep shared tasks safe across delete/archive, mark them everywhere
- Deleting a task keeps subtasks another project holds
- Hide archived branches from their origin task
- Show the Image in English when the app is in English
- No project owns a task; projects hold tasks (ProjectTasks)
- Draw.io plugin 1.0.2
- Upgrade the bundled draw.io to 32.0.2
- V1.8.5 changelog, Yi Jing plugin 2.0.1
- Add the moving lines, the transformed hexagram and Wilhelm's commentary
- Let a plugin tab show a count badge
- Redesign the oracle panel with an animated three-coin cast
- Write a log of each pack run
- Lock the open note during a sync and cancel the sync on exit
- Address fourth review pass
- Detach a failed plugin's event handlers
- Address third review pass
- Address second review pass
- Read settings under the lock when saving a note snapshot
- Address code audit findings
- Add name filter and date sorting to the task list header
- Upgrade Velopack and vpk CLI to 1.2.161
- Add drag-and-drop reorder within and across folders
- Add presentation-only folders and fix Ctrl/Shift multi-select
- Move "Link scroll" into the tab strip, drop the Compare header
- Upgrade all NuGet packages to latest (Avalonia 12.1.2, xunit 4)
- Change log
- Polish the Compare tab layout, header and selection look
- Compare selected tasks side by side in a closable Compare tab
- Fix pack.ps1 changelog encoding, theme the note editor for Nord/Solarized/Dracula
- Stop history-diff crash on real edits, keep it responsive NoteDiffView.ShowDiff ran the whole diff computation (Myers word-level diff + HTML reconstruction + CSS) synchronously on the UI thread. Two real problems, both hit while dogfooding this feature today:
- Stop erasing the crash-recovery flag on exit
- Adopt real NuGet CPM, fix Splash rebuild-every-time
- Test(quality): close out whole-codebase review — flakiness, dedup, perf, MSBuild
- Unbreak uninstall while the app is running
- Stop reloading whole task trees to read one status
- Run plugin install off the UI thread with real progress
- Live re-highlight, theme palettes, and a language picker for code blocks
- V1.7.1 changelog, consolidate pack-plugin.ps1 to repo root
- Support multi-file plugin assets, publish draw.io, fix Plugin Manager install state
- Rebuild the draw.io plugin against the current plugin architecture
- Code blocks get static highlighting, a copy button, and a CodeMirror 6 editing overlay
- Add Find & Replace to inline search bar
- Match CodeMirror overlay background/colors to the app theme
- Stop ArchiveProject from wiping task note history
- Gate main window reveal on splash process exit, pin SQLitePCLRaw to 3.0.5
- Stop empty snapshots, fix diff entity encoding, preserve panel/selection state
- Make Task.Children/Attachments non-nullable, GetTask virtual
- Close gaps across Core/Database/UI, fix stale RunVerification filters
- (ui): extract testable logic classes and expand test coverage
- (ui): restore last opened task when reopening project
- (ui): reduce coverage risk hotspots
- (history): remove style block content from snapshots
- (editor): extract bridge message parsing
- Resolve code review audit regressions
- (startup): reveal main window after splash closes
- (startup): restore last task before first render
- (startup): keep splash until workspace restore
- (database): checkpoint wal before backups
- (database): migrate legacy project task columns
- (editor): gate webview bridge by origin
- (history): sanitize snapshot preview html
- (database): create note history indexes by field name
- (editor): validate remote image fetches
- (startup): keep secondary instance out of recovery flow
- (markdown): disable raw html rendering
- (notes): route cross-project task links
- (plugins): dispatch events for task mutators
- (attachments): bound attachment imports
- (editor): remove wildcard file server cors
- (search): route archived results to archive view
- (history): purge deleted task snapshots
- (history): clean diff temp files
- (editor): clean large note temp files
- (md-sync): avoid toolbar folder scans
- (attachments): isolate temporary opened files
- (projects): update recency after task activity
- (plugins): guard note appends by active task
- (backups): key migration backups by package version
- (history): remove background LiteDB cleanup race
- (history): serialize snapshot sequence allocation
- (history): retry failed legacy note migrations
- (tasks): show live status in task picker
- (search): show live rollup status for task hits
- (archive): clean attachments before unarchive removal
- (archive): delete archived projects from archive db
- (plugins): store yi jing data outside install folder
- (app): guard shutdown before services are ready
- (plugins): validate registry dll paths
- (plugins): preserve task notes during metadata updates
- (deps): update NuGet packages and migrate tests to xunit v3
- Show inline Windows logo on the download page instead of the emoji
- Report real MD sync change counts and refresh the open editor
- Backup restore now clears stale WAL/SHM sidecars
- Search shows live project status, not stale computed_status
- Plugin events now fire for base-typed ProjectService calls
- Prevent task reparent cycles (stack-overflow crash)
- Note-history migration dropped uncompressed_size / previous_snapshot_id
- Prevent path traversal in EditorFileServer
- DeleteProject/DeleteTask clean up orphaned attachments
- Archive/unarchive copies task attachments too
- Archive/unarchive preserves task type-specific columns
- Search LIKE escaping now actually works (missing ESCAPE clause)
- MD-sync deadline stored as UTC, not local time
- Add test projects to the solution
- Update-migration safety net — reinstall fallback + staging mode
- Upgrade Velopack 0.0.1298 -> 1.1.1
- Run VelopackApp.Run() as the first statement of Main()
- TodoList storage now forward-compatible with older app versions
- TodoList task crashed app on startup
- Reduce cyclomatic complexity in large view files
- Status-rollup ordering fix, EditorFileServer leak, JSON dedup
- Debug builds use a separate data folder (Andon-Dev)
- Test: NoteRetentionPolicy + MdSyncService coverage
- Test: unit tests for StatusRollup, KanbanStageDeriver, DodStep JSON
- TodoList task type + click-to-open UX
- Note history panel — toolbar button, close UX, diff color fix
- Ignore and untrack andon_icons/
- Theme switch refreshes all code-behind controls; eliminate hardcoded colors
- Resolve all SonarQube findings across codebase
- Style: browser-tab style for task detail tab bar
- Style: light theme warm parchment palette + Kanban/tab polish
- MD sync saves history snapshot; oldest history entry not restorable
- MD repository sync per project
- Import Markdown file into notes via Ôåæ MD toolbar button
- Spell-check language control — global setting + per-note toolbar toggle
- Simplify spell-check to on/off only; fix empty button label bug
- Spell-check off by default; remove browser-default option
- Spell-check language not applying — set lang on <html> element
- WebView2 unavailable shows blank panel + skip NativeWebView creation
- Docs: update changelog
- Show fallback UI when editor page fails to load (e.g. sandbox)
- Changelog
- Restore last open project and task on startup
- Record nav state when tab is shown, not when clicked
- Record actual tab in nav register; remove focus ring on TitleBar
- Restore last tab in addition to last project and task on startup
- Startup restore runs twice because TryFinishStartup had no done-guard
- Defer startup restore until WebView is ready; keep saved position across nav-less sessions
- Restore last tab in addition to last project and task on startup
- WebView2 MoveFocus crash on background window activation
- Tidy startup restore — remove redundant locals, fix comment
- Changelog
- Clear crash-recovery flag before update-restart
- WebView2 MoveFocus crash on window reactivation
- Docs: add v1.4.8 changelog entry
- Free-range open source tagline in hero
- Replace site link with Codeberg open-source link in hero
- What's new banner at top of page
- Git-tag-based changelog with full history backfill
- Changelog generation in pack.ps1 + changelog section on site
- WebView2 unavailable shows blank panel + Kanban profile picker broken
- Add LiteDB to tech stack + red = Cancelled not Failed
- Open Codeberg link in new tab (target=_blank + rel=noopener)
- Hover feedback on What's new banner
- Add #Requires -Version 7 to pack.ps1
- Use System.Text.Json in pack.ps1 (requires PS 7+)
- Upload index.php in pack.ps1 + restore+update site page
- Run with pwsh (PowerShell 7) instead of the legacy powershell (5.1):
- Capitalisation typo fix
- Migrate NoteHistoryService from SQLite to LiteDB
- SQLite history migration + inline diff viewer in history panel
- Scrollbar tick map for diff changes
- Restore note CSS in diff page (headings, code, tables, blockquotes)
- Move history to inline side panel on Notes tab
- History panel shows current note by default, diff only on card click
- Andon-native DoD + task status UI with unified signal language
- Kanban UX polish — blocker in advance dialog, subtask todo list, code deduplication
- Notes tab for kanban tasks + card breadcrumb
- Pre-update DB backup + crash-recovery mode
- Tabbed settings dialog with Libraries tab + source link
- Library descriptions + hover-underline on links in settings
- Write diff.html to EditorFileServer folder before navigating
- Diff view blank — init WebView on AttachedToVisualTree, not on ShowDiff
- Oldest card disabled (not newest); simplify diff lookup; placeholder text
- Always use file-based diff path to avoid InvokeScript escaping issues
- Set EditorFileServer folder path in NoteDiffView
- Wait for first NavigationCompleted before navigating to diff URL
- Diff page layout — remove white-space:pre-wrap causing invisible text
- Boot navigate bypasses pending queue — WebView never started
- Notes tab disappears on task switch + separator cleanup
- Remove internal collapse button from NoteHistoryView
- Diff page shows full HTML note + text-only diff summary below
- Inject ins/del markers into HTML text nodes, preserving all tags
- Note search accuracy, duplicate snapshots, and search highlight persistence
- DoD state picker rules + backward drag blocker + advance dialog ordering
- Settings dialog title, library clipping, clickable library links
- Eliminate InvokeScript for diff — use NavigateTo with query params
- Compute diff in C#, serve pre-built HTML — no JS diffing
- History cards in right panel, diff replaces editor on card click
- Untrack and ignore tools/ folder
- Verbose error display in diff.html + C# debug log
- Step-by-step status in diff.html to isolate blank issue
- Use task name as default filename in Markdown export
- Kanban task type with DoD-driven board view
- Kanban phase 2-3 — DoD editor, subtask modal, board UX polish
- Lucide icons, starter kanban profiles, category picker, status rename
- Rename statuses to reflect Andon philosophy (en + fr)
- Drag-drop card advancement with DoD enforcement
- Kanban board ⋯ menu, redesigned profile manager, and full i18n
- Kanban hardening — snapshot pattern, validation, KPI fixes, card rename
- Blocker locks all checkboxes; blocker freezes card at current stage
- Drag-drop click/drag separation + partial advance + backward refresh
- Search clear + ⋮ button polish across project list and toolbar
- Keep DoD panel open across board reloads; restore snapshot + KPI i18n
- Prevent WebView2 MoveFocus crash on window reactivation
- Prevent WebView2 MoveFocus crash on window reactivation
- Avoid StrictMode crash reading undefined \$pfxPass variable
- Avoid StrictMode crash reading undefined \$pfxPass variable
- Ignore docs/ directory
- Remove duplicate Kanban section from Language.cs
- Load FTP/PFX credentials from env vars instead of hardcoding
- Load FTP/PFX credentials from env vars instead of hardcoding
- Feat: Kanban board polish + unified ANDON status rollup
- Task row UX improvements
- Clean publish dirs before pack to prevent Splash assembly contamination
- Handle missing app_settings table on fresh install + suppress WebView2 focus noise
- Prevent crash on Markdown export when WebView loses focus to save dialog
- Suppress WebView2 focus noise on Dispatcher to prevent MD export crash
- Prevent crash on Markdown export when WebView loses focus to save dialog
- Migrate: Avalonia 11.3.14 → 12.0.1 + WebView 11.4.0 → 12.0.0
- Av12 setup
- Merge: Avalonia 11.3.14 → 12.0.1 (Windows + Linux verified)
- Ure: cross-platform splash window with progress bar before CEF init
- Ure: Andon.Splash — separate process splash with stdin progress pipe
- Ure: wait for splash window before CEF init
- Ure: text highlight in note editor + fix note reload on same-task navigation
- Plugin version bump triggered on every pack run due to dirty description.json
- Splash not found on dotnet run — publish self-contained to splash\ subfolder
- Splash picks correct self-contained exe from splash\ subfolder
- Garbled ellipsis in splash labels — force UTF-8 on stdin pipe
- Suppress NU1903 vulnerability warning for Tmds.DBus.Protocol
- Resolve analyser warnings in TaskDetailView
- Build errors introduced by light refacto commit
- Convert [ObservableProperty] fields to partial properties (MVVMTK0042)
- Simplify null checks (IDE0031)
- Add RuntimeIdentifiers to Andon.Splash for linux publish
- Centralize package versions in Directory.Build.props
- Auto-copy Andon.Splash.exe to output dir on every local build
- Microsoft.Data.Sqlite 10.0.5 → 10.0.6 in Directory.Build.props
- R2R + trimming on Andon.Splash for faster cold-start
- Light refacto
- Migrate: replace CefGlue with Avalonia.Controls.WebView 11.4.0
- Ure: inline search bar in note editor (Ctrl+F)
- Task deletion not refreshing content panel; fix pack.ps1 .Count on single string
- Thread safety, transactions, N+1 queries, search nav, nav history
- Eliminate dead code, duplicates, and high-complexity methods
- Pack.ps1 change detection from SHA-256 to git commit hash
- Auto-create first task on new project; fix AddTreeTask top-level insert; warn before deleting last root task
- Improve task tree: inline drag-reorder, cross-parent reparent, collapse state
- CS1061 error and CS0618 Watermark deprecation warnings
- Avalonia back to 11.3.9 to restore color emoji
- Miller columns navigation: replace breadcrumb+dropdown with inline toolbar bar
- Yijing version and checum changes
- Ignore claude
- Maj packages + install roslyn
- .claude/ from version control
- Git ignore claude dir
- Downgrade Avalonia 12.0.0 → 11.3.13 to match CefGlue.Avalonia 120.6099.211
- Improve search: HTML-aware notes matching + keyword highlight in editor
- Crash on first launch: initialize settings DB before loading settings
- YiJing plugin: Image texts, card UI, save-to-notes fix, plugin update pipeline
- Yi jing extractions
- YiJing plugin checksum and version to 1.0.5
- Pre-bumping Andon.UI.csproj in pack.ps1
- Hardcoded Version from Andon.UI.csproj
- Pack.ps1 to respect <AssemblyName> for plugin DLL lookup
- Plugin update while DLL is loaded: stage to .new, apply on next startup
- Pack.ps1 to respect <AssemblyName> for plugin DLL lookup
- Built files
- OS modal dialogs with inline overlay system; normalize dialog spacing
- Simplify overlay system: extract PopOverlay helper, fix visibility restore, add guards
- YiJing plugin: SQLite history, EN/FR translations, correct hexagram rendering
- Ignore docs/yijin/ HTML source files
- Php
- Plugin pipeline: checksum-gated builds, encoding fixes, version display
- Improve update dialog, plugin dedup, and task search panel
- StrictMode .Count errors in pack.ps1 (again, lost in BOM re-saves)
- FTP pruning, add chmod on upload, use direct URLs for plugin registry
- Plugin registry 403: set User-Agent on HttpClient
- Plugin description.json version after successful FTP upload
- In-app plugin manager
- Full assembly version in plugin manager User-Agent
- StrictMode .Count errors and re-apply UTF-8 BOM on pack.ps1
- Project reference path after examples→plugins rename
- Pack.ps1 encoding: save with UTF-8 BOM
- Git ignore an csproj
- Plugin architecture + 易經 Yi Jing sample plugin
- Examples/ to plugins/
- Plugin packaging, FTP upload, and Plugins section on website
- Async void safety and dead code warnings
- HTML import, Markdown export, and tab badges to note editor
- Analyzer suggestions: init-only properties, visibility tightening
- Analyzer suggestions: primary constructors and collection expressions
- Redundant nullable suppressions and always-true null check
- Primary constructor parameters directly, drop backing fields
- ReSharper 'always false' on intentional async-init guards
- Spring cleaning
- Unified navigation history (back/forward/close), XButton mouse hook, tab constants, version in preferences
- Untrack version.txt (already in .gitignore)
- Andon icon, EN/FR language switcher to landing page
- Parallelize startup: show window immediately, init DB + Chromium concurrently
- Upload unversioned files (Setup.exe, AppImage, Portable.zip, JSON) on pack
- Tint toolbar with project ANDON color, fix task leak, auto add-task on empty project
- Code quality pass + fix task-detail search panel bugs
- Release page version display and upload JSON feed files
- FTP delete: use -X DELE URL instead of --quote
- Upload only current version files and prune old versions on FTP
- Task order numbers, status toolbar button, single-instance, and worst-status semantics
- Change project status to reflect last (highest display_order) non-white top-level task
- Last-ordered non-white child semantics to parent task status propagation
- Recompute project status after task reorder
- Image paste: serve editor via virtual http host, embed images as data URIs
- Avalonia warning and polish ReorderTasksDialog
- Archive back-navigation, live language switching, and startup crash
- Settings not persisting language and theme across restarts
- Initial commit: Andon MVP — Avalonia + WebView2 project management app
- .gitignore; untrack bin/, obj/, local settings
- Tracked build artifacts (bin/, obj/)
- Task links in notes, back navigation, shared WebView2 editor, and dark loading state
- Task list with dropdown selector, move detail panel below list
- File attachments, archive view, i18n completeness, and centralized theme
- App icon to all windows
- Andon icons
- UX improvements: task reorder, status fixes, and dialog polish
- Merge toolbar strips and add Preferences dialog
- Preferences dialog, French locale, light theme, and editor theming
- White text on green/blue buttons in light theme with lightened hover
- Delete confirmation dialog, breadcrumb nav, and toolbar polish
- Velopack installer, auto-updater, code signing, and release tooling
- .gitignore: exclude publish/, releases/, pfx certs, and make_cert.ps1
- WebView2 with CefGlue for cross-platform support, add Linux build and release pipeline
- DawnCache and GPUCache to .gitignore (CEF dev-time cache dirs)
- Design splash screen
- Overhaul toolbar, navigation, search, and archive UI