# Rogue Agenda project ledger Last updated: 2026-08-16 ## Product direction Rogue Agenda is a Rust, Ratatui, and SQLite reimagining of Lotus Agenda 2.0. The goal is functional fidelity to its information-management ideas and visual rhythm, not binary or document compatibility. Documents use `.agnd`; each is a self-contained SQLite database. Every product string uses **Rogue Agenda**. The central principle is “capture first, organize later.” An item is stored once and may participate in many category relationships and saved views. The TUI keeps the original's high-information gray workspace, blue title bands, red selection, columnar item view, and function-key strip, while adding dynamic layout, mouse interaction, conventional shortcuts, UTF-8, and modern durability. ## Research basis - Lotus Development Corporation, *Lotus Agenda User's Guide 2.0* (1989), scanned at Internet Archive. The contents identify items, notes, hierarchical and mutually exclusive categories, explicit/conditional assignments, sections, live views, datebook views, alarms, numeric calculations, filters, dependencies, bulk marking, sorting, automatic conditions/actions, import/export, printing, backups, managers, macros, and accessories. - Lotus Development Corporation, *Starter Applications 2.0* (1990), scanned at Internet Archive. It documents Activities Planner, Account Manager, People Manager, priorities, contacts, expenses, weekly tracking, and status reports. - Tavis Ormandy's hands-on “Lotus Agenda” article and animations. These establish the actual screen grammar: two-line blue file/view header, gray unboxed canvas, section and column headings, dot-prefixed category values, red selection, blue F1–F10 command tiles, and examples of natural-language extraction. - Bob Newell's Agenda FAQ and James Fallows' contemporary account. These clarify the distinctive behavior: single-copy items, category inheritance, negative assignment, aliases/abbreviations, incremental structure, and named live views. - Period reviews from the Los Angeles Times and HUMANIST archives corroborate long notes, free-form entry, priorities, Boolean reports, and automatic filing. Research URLs: - https://archive.org/details/lotus-agenda-users-guide - https://lock.cmpxchg8b.com/lotusagenda.html - https://www.bobnewell.net/agenda/agfaq.txt.html - https://www.bobnewell.net/agenda/atlantic.txt.html - https://dhhumanist.org/archives/Virginia/v02/0410.html - https://www.latimes.com/archives/la-xpm-1988-07-28-fi-9745-story.html ## Implemented in this prototype - [x] `.agnd` SQLite documents, schema migration metadata, foreign keys, WAL, transactions, integrity-friendly soft deletion, and automatic checkpoints. - [x] Items with free text, note, priority, When, Done, alarm, numeric value, recurring schedule, creation/update timestamps, manual order, and prerequisite links. Completion advances recurring work and carries alarms and filing forward. - [x] Categories with hierarchy, inheritance in queries, kinds (standard, date, numeric), match phrases, mutually exclusive siblings, and many-to-many links. - [x] Explicit assignment and automatic text-based assignment. - [x] Explicit negative category assignments that override automatic filing. - [x] Natural-language date extraction for common relative, weekday, and ISO forms. - [x] Live saved views, datebook presentation, category/done/date/priority filters, search filtering, configurable sort, and responsive columns. - [x] Interactive creation, editing, and deletion of saved live views and category definitions, including hierarchy, match phrases, kinds, and exclusivity. - [x] Persistent per-view fields, headings, widths, order, numeric aggregates, filtered multi-section layouts, collapsed sections, and view reordering. - [x] Parsed Boolean expressions with `and`/`or`/`not`, parentheses, text/note/ category matching, numeric comparisons, state predicates, and relative due dates. - [x] User-authored category conditions with live match preview and deterministic assign, exclude, priority, numeric value, When, alarm, recurrence, and Done actions. Rules apply iteratively, respect explicit overrides, and detect non-convergence. - [x] Default All Items, Tasks, Upcoming, Recently Done, and Datebook views. - [x] Agenda-style item workspace, View Manager, Category Manager, command menu, item editor, property editor, notes, category chooser, help, and status messages. - [x] Marking and bulk completion; Trash view, soft discard, and recovery. - [x] Responsive wide/compact rendering and mouse row/command/view interaction. - [x] Vi-style `h`/`l` saved-view navigation with wraparound and legacy `[`/`]` aliases. - [x] Application Preferences persisted as typed TOML at `~/.config/rogue-agenda/preferences.toml`: theme, command bar, rule/return/item markers, autosave, confirmations, date/time display, and number separators; predefined values use Space-open keyboard/mouse choice popovers. - [x] Six bundled palettes: Lotus-inspired Classic, Mono, Amber, Greenscreen, Nord, and Catppuccin Mocha. The three additional themes enforce at least 7:1 selected-row contrast without changing the original three. - [x] Dedicated, contrast-checked canvas-heading colors across all themes for column titles, sections, Datebook dates, aggregates, and empty-view messages. - [x] Transactional per-document settings embedded in `.agnd`: description, backup-on-open, Trash and completed-item policies, automatic filing, numeric date order, week boundary, natural-language named times, and note tab width. - [x] Consistent manual/startup `.agnd.bak` backups, timed WAL checkpoints, configurable Trash maintenance, and confirmations for permanent operations. - [x] Text and iCalendar import; view-scoped CSV, JSON, Markdown, styled HTML, and iCalendar export with notes, categories, dates, priority, completion, and recurring `RRULE` schedules. - [x] Demo data, CLI help, README, MIT license, and unit/integration tests. ## Supported with a modern interpretation - [x] Numeric calculations: per-item numeric values and view total/average are supported; arbitrary category formula programs are intentionally represented by the safer aggregate model. - [x] Conditions/actions: category match phrases and date parsing run on item changes; assignments are immediately re-evaluated. Shell-executing actions are omitted by design, while deterministic filing actions are supported. - [x] Printing: view-aware Markdown and styled HTML reports are the portable print/preview path, alongside CSV and JSON data exports. - [x] Backups: SQLite durability is supplemented by explicit/manual and backup-on-open `.agnd.bak` snapshots after a full WAL checkpoint. Ordinary filesystem backup tools also work on `.agnd` files. - [x] Clipboard/accessory capture: terminal paste into the new-item form replaces the DOS resident accessory. - [x] Macros: conventional keys and direct commands replace keystroke-replay macros. ## Delayed / unsupported These are the few features that either depend on obsolete DOS integration or need a larger follow-on implementation: - [ ] Arbitrary formula columns that reference several numeric categories. Current view columns support `sum`, `avg`, `count`, `min`, and `max` aggregates. - [ ] Rich-text/font markers, printer control sequences, page-layout preview, and named printer configurations. - [ ] Lotus Metro/List Manager/STF compatibility, DOS accessories, and Agenda macro compatibility (explicitly outside the project's format-compatibility goal). - [ ] Password encryption. A description field is supported by schema metadata; weak historic password protection will not be imitated without real encryption. - [ ] Desktop notifications while the application is closed. Due alarms are shown prominently while Rogue Agenda is running. ## Near-term plan 1. Add desktop alarm integration and in-application snooze controls. 2. Add encrypted documents and secure unlock handling. 3. Add property-based tests for complex hierarchy and rule combinations. 4. Add a structured text definition-file importer for unusual legacy datasets.