Repository navigation
Release 0.18.0: complete listings, accountable writes and verifiable facts - #45
Merged
Merged
Conversation
tasks completed walks the completion window page by page, deduplicates boundary ties, and reports pages and complete. A listing that stops at the page budget carries a warning and fails --require-complete. The positional day count now sets the window start.
Ledger records carry actor { id, kind, session? }. A global --agent names
the acting agent for every write in one invocation; ATS_ACTOR_KIND and
ATS_SESSION_ID are honored. ledger list filters by --actor-kind and
--session, and history revisions show the actor.
ats kg verify rechecks every active fact's source: task references through the active adapter, file paths by existence and modification after the fact was learned, and URLs with --network. Results are verified, changed, stale or unverifiable; any stale or changed source exits 2, and --propose-retract stages a reviewed retraction for each stale fact.
The Goal+Log normalizer checks that every word of the input survives in its output. A body it cannot restructure without loss is written verbatim and the result reports skipped: content-loss with the affected words. Writes warn when a body arrives as one line of literal \n sequences.
…item review approve refuses a decision from the staging identity, by name or by the acting agent, with exit 4. ATS_REVIEW_REQUIRE_HUMAN=1 also refuses approvals from a process acting as an agent. Items record the staging and deciding actor, and approve/reject accept --note.
kg propose --require-source any|checkable, or ATS_KG_REQUIRE_SOURCE with an optional ATS_KG_REQUIRE_SOURCE_DOMAINS list, refuses a proposal without a source with verdict unsourced and exit 4. checkable accepts the task, file and URL references kg verify can recheck. Batch proposals apply the same policy per line.
Note and concept updates rewrite only the keys they change. Block lists, nested maps, comments, key case and unknown keys stay byte for byte; values that need it are quoted, and missing keys are appended.
Every ledger record carries prevHash, the SHA-256 of the line before it. ats ledger verify checks the chain, reports each break with its line and exits 2; it prints head, the hash of the last entry, and --expect-head compares it with a value kept elsewhere. Entries written before chaining stay valid at the start of the file.
kg propose --tier source-fact|action-record|statement|belief (and a tier field per batch line) records what kind of claim a proposal makes. kg pending shows each proposal's tier, counts per tier and filters with --tier; ratified facts keep the tier in their provenance and exports.
Refresh the transitive Express dependency to the patched release; npm audit reports no findings.
Changelog entries, README examples and reliability notes for complete completed listings, actors, ledger verification, fact source verification, provenance policy, review separation, ratification tiers and lossless normalization.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release candidate for 0.18.0: complete listings, accountable writes and verifiable facts. One commit per item; the CHANGELOG stays under Unreleased.
Changes
ats tasks completed [DAYS]pages through the completion window past the backend's per-call limit, deduplicates boundary entries and reportspagesandcomplete. A listing that stops at its page budget warns and fails--require-complete. The positional day count sets the window start.actor: { id, kind, session? }(agent,human,unattributed). A global--agent NAMEnames the acting agent for one invocation;ATS_ACTOR_KINDandATS_SESSION_IDare honored.ats ledger listfilters by--actor-kindand--session; history revisions show the actor.ats kg verify [FACT_ID...]rechecks each active fact's source against the system that holds it:task://P/Tand--taskreferences through the active adapter, files on disk (existence and modification after the fact was learned), URLs with--network. Results areverified,changed,staleorunverifiable; stale or changed sources exit 2, and--propose-retractstages reviewed retractions.skipped: content-losswith the affected words. Writes warn when a body arrives as one line of literal\nsequences.ats review approverefuses a decision from the identity that staged the item, by reviewer name or acting agent, with exit 4.ATS_REVIEW_REQUIRE_HUMAN=1also requires a human approver. Items recordstagedActoranddecidedActor, andapprove|rejectaccept--note. Rejecting one's own proposal stays possible.kg propose --require-source any|checkable, orATS_KG_REQUIRE_SOURCEwith optionalATS_KG_REQUIRE_SOURCE_DOMAINS, refuses unsourced proposals with verdictunsourcedand exit 4.checkableaccepts the referenceskg verifycan recheck. Batch proposals apply it per line.prevHash, the SHA-256 of the previous line.ats ledger verifychecks the chain, names each break by line and exits 2; it printshead, and--expect-head HASHcompares it with a value kept elsewhere. Entries written before chaining stay valid at the start of the file.kg propose --tier source-fact|action-record|statement|belief(andtierper batch line) records the kind of claim.kg pendingshows each proposal's tier, counts per tier and filters with--tier; ratified facts and exports keep it in provenance.Maintenance: the lockfile resolves proxy-addr 2.0.8 (GHSA-jqcg-44mw-7w3h, transitive via Express);
npm auditreports 0 findings.Verification
npm testpasses: lint, PII and claims checks, 516/516 unit tests (494 on the base commit, +22 new), and the intent, Taskmaster, synthetic Beads and progress proofs.adapter-ticktick/test/completed-pages.test.js,core/test/action-actor.test.js,core/test/kg-verify.test.js,core/test/ledger-chain.test.js(including entries over 64 KB),cli/test/kg-governance.test.js(verify, separation, policy, ledger verify and tiers through the binary), and additions to the routing, update-modes, task-format, Obsidian and OKF tests.tasks completed 60returned 519 completions over 3 pages, marked complete, where 0.17.0 returns 200.ledger verifyaccepted an existing 5,015-entry ledger as unchained legacy entries with no breaks.kg verifyran clean on an empty store.Review notes
d6768dc(main). No other open PRs.core(action-ledger, review-queue, kg-store, new kg-verify, task-format),cli(bin, parser, reliability),adapter-ticktick(completed listing),adapter-obsidian,adapter-okf, docs, lockfile.packages/mcpis untouched; MCP review approvals inherit the separation check from core.ATS_AGENT_IDcan no longer approve items staged under that same identity. The kg CLI test harness now approves from a separate reviewer environment.actorandprevHash; review items gainstagedActor/decidedActor; completed listings gainpages/complete; fact provenance gainstierwhen one was given. Existing readers keep working.cli/test/ticktick-routing.test.jstakes about 21 s on its own, on both the base commit and this branch, which is close to the 30 s per-file limit; one parallel run on a loaded machine timed out once, and every later run passed.