doc: updated project status and features that are missing

This commit is contained in:
2026-08-20 20:13:55 +02:00
parent b5b8ae0d55
commit cb0e480b79

View File

@@ -1,6 +1,6 @@
# Rogue Agenda project ledger # Rogue Agenda project ledger
Last updated: 2026-08-16 Last updated: 2026-08-20
## Product direction ## Product direction
@@ -20,7 +20,7 @@ interaction, conventional shortcuts, UTF-8, and modern durability.
- Lotus Development Corporation, *Lotus Agenda User's Guide 2.0* (1989), scanned - Lotus Development Corporation, *Lotus Agenda User's Guide 2.0* (1989), scanned
at Internet Archive. The contents identify items, notes, hierarchical and at Internet Archive. The contents identify items, notes, hierarchical and
mutually exclusive categories, explicit/conditional assignments, sections, mutually exclusive categories, explicit/conditional assignments, sections,
live views, datebook views, alarms, numeric calculations, filters, dependencies, live views, datebook views, alarms, numeric categories, column calculations, filters, dependencies,
bulk marking, sorting, automatic conditions/actions, import/export, printing, bulk marking, sorting, automatic conditions/actions, import/export, printing,
backups, managers, macros, and accessories. backups, managers, macros, and accessories.
- Lotus Development Corporation, *Starter Applications 2.0* (1990), scanned at - Lotus Development Corporation, *Starter Applications 2.0* (1990), scanned at
@@ -38,6 +38,22 @@ interaction, conventional shortcuts, UTF-8, and modern durability.
- The preserved Agenda 2.0 Help file documents the Macro Manager, Learn workflow, - The preserved Agenda 2.0 Help file documents the Macro Manager, Learn workflow,
note-style Macro Editor, complete brace-command catalog, variables, special note-style Macro Editor, complete brace-command catalog, variables, special
values, error/break handlers, key notation, macro menus, and manager indicators. values, error/break handlers, key notation, macro menus, and manager indicators.
- The preserved Agenda 2.0 Help and User's Guide define the original computation
and automation model precisely. Each item can hold an independent value for each
numeric category. Numeric columns provide Count, Total, Average, Minimum, and
Maximum, an optional `% of total` column, and calculation labels and results that
can be displayed and printed. Conditions are Text, Assignment, Date, or Numeric.
Actions are Assignment, Date, Numeric, or Special; Special means designate as
done, export, or discard. Utilities `Execute` re-applies conditions and actions
to existing items; it is not an action type and does not launch a command.
- Agenda macros provide numeric variables, arithmetic expressions (`+`, `-`, `*`,
`/`), and special values including `#HIGHLIGHT_VALUE`, so procedural calculations
can read and write values through the interface. The 2.0 documentation does not
describe declarative or automatically recalculated formula columns that combine
multiple numeric categories. Such spreadsheet-style formulas are therefore not
a historical parity requirement.
- A 1990 Lotus support FAQ (ag2qanda) independently lists the numeric-column
calculations as Count, Total, Average, Minimum, and Maximum.
Research URLs: Research URLs:
@@ -48,6 +64,7 @@ Research URLs:
- https://www.bobnewell.net/agenda/AgendaHelp.htm - https://www.bobnewell.net/agenda/AgendaHelp.htm
- https://dhhumanist.org/archives/Virginia/v02/0410.html - https://dhhumanist.org/archives/Virginia/v02/0410.html
- https://www.latimes.com/archives/la-xpm-1988-07-28-fi-9745-story.html - https://www.latimes.com/archives/la-xpm-1988-07-28-fi-9745-story.html
- https://www.bobnewell.net/agenda/ag2qanda.txt.html (1990 Lotus support FAQ; confirms the five column-calculation settings)
## Implemented in this prototype ## Implemented in this prototype
@@ -119,14 +136,28 @@ Research URLs:
## Supported with a modern interpretation ## Supported with a modern interpretation
- [x] Numeric calculations: per-item numeric values and view total/average are - [x] Numeric calculations currently use one optional `numeric_value` per item and
supported; arbitrary category formula programs are intentionally represented expose five named aggregate modes: `sum`, `avg`, `count`, `min`, and `max`
by the safer aggregate model. (`model/enums.rs` `Aggregate`, `ui.rs` `aggregate_value`). Sum, average, minimum,
- [x] Conditions/actions: category match phrases and date parsing run on item and maximum operate on the populated values in a section. Count currently counts
changes; assignments are immediately re-evaluated. Shell-executing actions are every item in the section, whereas Lotus Count counted populated entries in the
omitted by design, while deterministic filing actions are supported. numeric column. The names therefore align with Lotus, but the data model,
category scoping, Count semantics, formatting, and presentation do not yet have
full parity.
- [x] Conditions / actions: each `CategoryRule` pairs a parsed condition
expression (`filter.rs` `Predicate`: text/note containment, category membership,
priority and numeric-value comparison, done / has-note / has-date / due-within /
overdue / alarm / recurring) with a deterministic action (`RuleActionKind`:
assign, exclude, priority, value, when, alarm, repeat, done). This is a useful
modern predicate-to-mutation engine, but it is not yet a faithful implementation
of Lotus conditions and actions. Re-evaluation on item change is currently tied
to automatic filing, and a conditional assignment is not withdrawn when its
predicate becomes false. `Done` overlaps one Lotus Special action; rule-driven
export and discard are missing.
- [x] Printing: view-aware Markdown and styled HTML reports are the portable - [x] Printing: view-aware Markdown and styled HTML reports are the portable
print/preview path, alongside CSV and JSON data exports. print/preview foundation, alongside CSV and JSON data exports. Markdown and HTML
currently omit aggregate rows, percentage-of-total columns, numeric formatting,
and other report-layout fidelity listed below.
- [x] Backups: SQLite durability is supplemented by explicit/manual and - [x] Backups: SQLite durability is supplemented by explicit/manual and
backup-on-open `.agnd.bak` snapshots after a full WAL checkpoint. Ordinary backup-on-open `.agnd.bak` snapshots after a full WAL checkpoint. Ordinary
filesystem backup tools also work on `.agnd` files. filesystem backup tools also work on `.agnd` files.
@@ -135,31 +166,89 @@ Research URLs:
- [x] Macros retain Agenda's compact hybrid of literal keystrokes and `{COMMAND}` - [x] Macros retain Agenda's compact hybrid of literal keystrokes and `{COMMAND}`
entries while applying those actions to Rogue Agenda's modern TUI. entries while applying those actions to Rogue Agenda's modern TUI.
## Delayed / unsupported ## Fidelity TODOs
These are the few features that either depend on obsolete DOS integration or need These are the still-missing capabilities that matter to a full modern reimagining
a larger follow-on implementation: of Agenda. Obsolete DOS integration, hardware-specific printer control, and legacy
file-format compatibility are not parity goals.
- [ ] Arbitrary formula columns that reference several numeric categories. Current ### Numeric data and calculations
view columns support `sum`, `avg`, `count`, `min`, and `max` aggregates.
- [ ] Rich-text/font markers, printer control sequences, page-layout preview, and - [ ] Store a separate value for every itemnumeric-category assignment instead of
named printer configurations. the current single `items.numeric_value` scalar. Preserve explicit, automatic,
- [ ] Lotus Metro/List Manager/STF compatibility, DOS accessories, and import of and conditional assignment provenance while doing so.
external legacy `.MAC` files (outside the project's format-compatibility goal). - [ ] Bind numeric view columns to a specific numeric category so several values,
- [ ] Historic macro protection, hidden-list indicators, external source-file such as Hours, Rate, Cost, and Budget, can coexist on one item and be displayed,
attachment, and per-screen run restrictions. Macro source, Learn recording, filtered, sorted, edited, and aggregated independently.
execution, key binding, AUTOEXEC, and persistent variables are already native. - [ ] Scope numeric conditions and numeric actions to a chosen numeric category,
- [ ] DOS macro single-stepping/speed/frozen-window effects and an internal with inside/outside minimum and maximum ranges and assignment removal.
clipboard bridge. Their command syntax and `#CLIPBOARD` value are recognized; - [ ] Match Lotus aggregate semantics per numeric column and per section: Count
screen-pacing directives are safe no-ops and the clipboard currently reads empty. populated numeric entries rather than rows, and calculate Total, Average,
- [ ] Password encryption. A description field is supported by schema metadata; Minimum, and Maximum from that column's values only.
weak historic password protection will not be imitated without real encryption. - [ ] Add per-numeric-column display properties: label or currency symbol, decimal
- [ ] Desktop notifications while the application is closed. Due alarms are shown places, thousands separator, negative-number style, and full-precision storage
prominently while Rogue Agenda is running. independent of rounded display.
- [ ] Implement `Display % of total` as a derived, non-editable companion column
calculated within each section.
- [ ] Make macro highlight context cell-aware. `#HIGHLIGHT_VALUE` must expose the
highlighted numeric, date, text, category, or item value so Agenda-style macro
arithmetic can operate on document data rather than only on item text.
### Conditions and actions
- [ ] Separate Lotus-style conditions from actions. A condition creates a live
conditional assignment to its own category; an action creates an explicit,
persistent assignment or value change after an item enters its source category.
- [ ] Withdraw conditional assignments automatically when their Text, Assignment,
Date, or Numeric condition becomes false, while preserving explicit assignments.
- [ ] Re-evaluate affected rules whenever their inputs change, independently of the
automatic text-filing preference.
- [ ] Implement category-scoped Assignment, Date, and Numeric conditions with the
original positive/negative and inside/outside-range behavior.
- [ ] Implement Assignment, Date, and Numeric actions with explicit persistence,
including assignment removal and category-specific date and numeric values.
- [ ] Complete Special actions: designate as done, export to a selected structured
destination, and discard. `Done` exists today; export and discard do not.
- [ ] Add a user-facing re-evaluation command equivalent to Utilities `Execute`,
scoped to the current item, marked items, section, view, or whole document. This
means applying rules to existing data, not executing an external process.
- [ ] Surface circular or conflicting rules as inspectable document state instead
of only returning a non-convergence error.
### Markdown, HTML, and modern printing
- [ ] Emit calculation-label footer rows and results for every configured aggregate
in every Markdown and HTML section, using the same values as the live view.
- [ ] Emit `% of total` companion columns when enabled and keep percentage values
consistent between the TUI, Markdown, and HTML.
- [ ] Apply each numeric column's label/currency, decimal, separator, and negative
formatting consistently in Markdown and HTML reports.
- [ ] Preserve configured column alignment and relative widths in HTML and use
appropriate Markdown alignment markers where Markdown can represent them.
- [ ] Add print-focused HTML styling: repeated table headers, sensible page breaks,
section continuity, note wrapping, and optional document/view headers and footers.
- [ ] Include report metadata needed to understand an export: document description,
view name, active filters, and generation time, without changing data-only CSV
and JSON exports into presentation formats.
### Other modern-relevant fidelity
- [ ] Add rich-text emphasis markers and a modern print/PDF preview and page-layout
workflow without reproducing DOS printer drivers or control sequences.
- [ ] Connect macros to the system clipboard and support useful modern equivalents
of per-context run restrictions, source attachment, and single-step debugging.
- [ ] Add secure encrypted documents and unlock handling instead of reproducing the
original weak password protection.
- [ ] Add desktop alarm delivery while the application is closed and in-application
snooze controls.
## Near-term plan ## Near-term plan
1. Add desktop alarm integration and in-application snooze controls. 1. Implement per-numeric-category values and category-bound numeric columns.
2. Add encrypted documents and secure unlock handling. 2. Correct conditional-assignment lifecycle and separate conditions from explicit
3. Add property-based tests for complex hierarchy and rule combinations. actions.
4. Add a structured text definition-file importer for unusual legacy datasets. 3. Complete aggregate, percentage, numeric-formatting, Markdown, and HTML report
parity.
4. Add desktop alarm integration and in-application snooze controls.
5. Add encrypted documents and secure unlock handling.
6. Add property-based tests for complex hierarchy, rule, and numeric combinations.