doc: updated project status and features that are missing
This commit is contained in:
153
PROJECT.md
153
PROJECT.md
@@ -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 item–numeric-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.
|
||||||
|
|||||||
Reference in New Issue
Block a user