Repository navigation
Added
- Every statement says where it came from (backlog 0037): what the notebook learns from a note now
names the steps of AbstractRuntime's ledger that captured the note and that understood it (the run and
the ledger row), and the note's text and attachments as stored files of the capture run. When a later note
supersedes or retracts a statement, the closing carries the same. Corrections a person makes on the web page
(retract, redate, undo a merge, confirm a match, close a task) do not run as steps of the ledger yet: they
name the revision and its account, but no ledger source. A run id typed by a caller or a model is kept as a
label, never as a source. The shape is AbstractMemory's (its ADR 0003), so the notebook's knowledge can
move into the plane's memory with its sources, where it stays yours (readable by your own other
applications, by nobody else by default). Inside the gateway a captured note's text is also
stored as an artifact of the capture run; captures from the command line and importers are unchanged.
Nothing is filled in for notes written before this version. - Ideas understood differently reach what relies on them (ADR 0008 §4a): when an earlier note changes what
an idea is (its statements, its relations, what it is, or deeply its description), the later notes about the
ideas that rest on it are understood again too, strongest first and in the order things happened, and each
one is shown what changed. The Processing page says why: "Re-understanding 12 notes (5 because Zorn changed)",
and before a consolidation runs it says how many more may follow. A wave of changes always ends; a second
consolidation with nothing new changes nothing.
Changed
- Requires AbstractRuntime 0.15.0 (its step context and
LedgerStore.get_record, ADR 0011): a note
tool reads the run and ledger row of the step it runs in from the runtime; neither a flow nor a model passes
it. The floor isabstractruntime>=0.15.0. The[gateway]extra floorsabstractgateway>=0.17.0(the memory routes, the strict owner rule). - Notebooks open as before: the new fields are added to an existing notebook when it opens, empty
for what it already holds; the notebook's format version stays 4 (the live notebooks' version, now the
baseline of this package). - Requires AbstractMemory 0.4.0: a statement placed between two earlier beliefs now moves the
older belief's end date through AbstractMemory's publicnarrow_assertion; AbstractNote no longer
writes AbstractMemory's private table (backlog 0034). The floor isabstractmemory>=0.4.0, the
release that carries it. - What a thing is: the description of a person, project or tool now says what it is (its kind,
its role or purpose, and what it belongs to or works with), instead of the latest thing
that happened to it. It is rewritten only when a note changes
what the thing is, and a note dated before what the notebook learned later describes the thing
as it stood then. - Statements: understanding a note now names how two things relate with a specific verb (runs
on, depends on, fixed in, status, version) read from the first to the second, and keeps the same
wording for the same kind of fact, so a new status or version replaces the old one. - Agents and their packages: an agent that writes messages (such as a seat named
gateway) is
kept apart from the software it works on, even when both carry the same name. - One spelling per topic:
abstractnote normalize-topicsjoins only topics that differ by case,
hyphens, underscores or spaces; a plural (bug_fixes) stays its own topic. - Nothing left out without a word (ADR 0007): a description longer than 600 characters or a
theme name longer than 4 words is kept whole with a warning instead of being cut or dropped;
topics a note could not keep are named in what processing did to it; lists chosen under a bound
(the graph, recall packets, search, stats, reflection candidates) say how much they left out, and
a request for more than a read allows is answered and logged.
Fixed
- Consolidation no longer stops silently: when the model gives an empty or partial answer, the
consolidation asks once more, sets aside what is still unanswered for the next pass and goes on,
instead of ending the summaries stage and calling the pass complete with hundreds of summaries
still waiting. A pass that could not refresh everything is marked as having gaps, and the
Processing page says so in one quiet line ("12 summaries could not be refreshed this time; they
will be tried again next time."). - Imported notes are filed too: an imported note now gets the same quick filing as a note you
send (its kind and up to four topics) when it is understood, andabstractnote refile --missing --localfiles the notes that were understood before, a batch at a time, saying how many are left.
The same repair runs through the server (POST /note/refilewith{"missing": true}), each note
filed on your own runtime, andGET /note/refilesays how far it got. - A note found unchanged is not read again for the same reason: when a note read again because
an idea it relies on changed comes out the same, the notebook remembers what it was read against,
so the next change wave from that idea passes it by without a model call. - A note read while the notebook changed is read again: when a statement a note builds on is
withdrawn while the note is being understood, nothing of that reading is kept and the note goes
back to the queue once, at its place, with the reason shown in the queue; the next reading is made
on what holds now. - Imports leave out what cannot be read: a file the notebook cannot read (an image without a
description model, for example) and a Markdown file that is only its header are no longer stored
as notes made of their names; the import report counts them and names each one with the reason. - Web app, developer mock: the mock server answers a note's date basis, a failed note's recent
errors and how each changed note changed, as the server does, so the screens built on it read the
same answers. - Withdrawn entries stay out of sight: an entry that only an earlier reading of a note made,
and that the note no longer names once it is understood again, is no longer counted in the
numbers, the timeline, the day view or the overview, and is in no theme, cue or description
refresh. Its own page says when and why it was withdrawn and what the note now reads it as
("…was understood again and now reads it as Helix calibration plan."); looking at the notebook
as it was received before that still shows it.
What's Changed
- Baseline: merge the serve line (schema 4, cd6227c) into main (operator decision 1) by @lpalbou in #2
- Thin-client slice 1: public narrow_assertion (0034), ledger provenance on every revision (0037), phased convergence plan (0033) by @lpalbou in #1
- AbstractNote 0.2.0: ledger provenance, AbstractMemory 0.4.0 by @lpalbou in #3
Full Changelog: v0.1.0...v0.2.0