Repository navigation
v0.98.0
Install or update: npm i -g cotal-ai@0.98.0
Changes in this release
cotal daemon … --daemon-home <dir>runs and reaches a separate daemon whose state lives in that directory: its own sign-in session, per-space identity, register request and service store, its own socket under$XDG_RUNTIME_DIR/cotal/home-<hash>/daemon.sock, and a lifetime lock at<dir>/daemon.lockthatserveholds while it runs. The directory must already exist as an absolute 0700 directory you own, and cannot be the Cotal home. It runs beside the default daemon and copies nothing from it, so it needs its ownlogin,registerand owner approval. Spaces are still read from the shared Cotal home's mesh registry. Clients send nothing unless the process at that socket is the lock's live owner. A secondservefor the same home refusesCONFLICT(LOCK_HELD), and a socket left by a killed daemon is still refused and never removed. Without the flag nothing changes.- The cotal config reader now builds every refusal from one helper and tests each object position with one shared plain-object predicate, so the sections cannot drift apart. The refusal messages are unchanged.
- An injected
SecretStorenamed by a whitespace-onlyCOTAL_SECRET_STOREis now refused when the manager or the delivery daemon is constructed, with the message that names the variable.injectedSecretStoreIdentityreads the coordinate throughparseSecretStoreIdentity, the parser the store challenge answer goes through, so the start-time check and the delivery-admin rail agree on what a blank coordinate is. Before, a value such as two spaces passed at start and was refused later inside the challenge, in a message that did not name the variable. docs/UPGRADING.md, whichcotal_docsserves, now heads the section on the removed manager-service authority policy flag with 0.76.0, the first release that carries that change. It named 0.75.0, a release that does not contain the change and was never published. No behavior changes.
What's Changed
- docs(upgrading): name 0.76.0 for the manager-service authority flag section by @davidfarah2003 in #4415
- refactor(core): share one plain-object test and refusal shape in the config reader by @davidfarah2003 in #4409
- test(auth): gate the auth package suites that nothing ran by @davidfarah2003 in #4419
- test(auth): give the recompile refusal cell the shape that reaches it by @davidfarah2003 in #4420
- test(manager): restart the suites' timer writer when its pump faults by @davidfarah2003 in #4423
- fix(core): refuse a whitespace-only COTAL_SECRET_STORE at start by @davidfarah2003 in #4422
- docs(auth): name the replay record's path and the exact resend command for service-endpoint by @davidfarah2003 in #4424
- docs(cli): give the real reason cotalOnPath scans PATH without exec by @davidfarah2003 in #4427
- feat(daemon): run a separate daemon from an explicit --daemon-home by @davidfarah2003 in #4428
- chore(release): version packages by @davidfarah2003 in #4418
Full Changelog: v0.97.1...v0.98.0