Add KERIA tock configuration with legacy compatibility - #465
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #465 +/- ##
==========================================
+ Coverage 88.26% 88.73% +0.46%
==========================================
Files 26 27 +1
Lines 5950 6056 +106
==========================================
+ Hits 5252 5374 +122
+ Misses 698 682 -16 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
kentbull
force-pushed
the
feat/tocks-config-compat
branch
4 times, most recently
from
September 16, 2026 22:21
3e2499f to
4da2e75
Compare
Reuse the KERIpy resolver with a KERIA registry for the twelve existing Agent settings. Add the canonical tocks.signify namespace, environment overrides, strict validation, and deprecation warnings for compatible flat keys while preserving existing defaults. Snapshot template settings at Agency startup and persist only explicit canonical values for new Agents. Reopen existing Agents from their own unchanged config files, including when database paths use a nonempty base.
kentbull
force-pushed
the
feat/tocks-config-compat
branch
from
September 16, 2026 22:25
4da2e75 to
f6b4bb0
Compare
kentbull
commented
Sep 16, 2026
kentbull
commented
Sep 16, 2026
kentbull
force-pushed
the
feat/tocks-config-compat
branch
7 times, most recently
from
September 18, 2026 05:21
8fb37e5 to
a0f0916
Compare
kentbull
force-pushed
the
feat/tocks-config-compat
branch
from
September 18, 2026 05:22
a0f0916 to
73fb151
Compare
kentbull
marked this pull request as ready for review
September 18, 2026 05:25
Collaborator
Author
|
@daidoji please review |
iFergal
reviewed
Sep 18, 2026
daidoji
approved these changes
Sep 21, 2026
iFergal
approved these changes
Sep 22, 2026
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.
Summary
Fixes #258
KERIA previously read twelve flat Agent tock settings, but lacked consistent environment overrides, validation, and propagation into child tasks. This PR centralizes scheduling configuration in
keria.app.scheduling, reuses KERIpy's resolver, and threads configured tock cadences through recurring Agency/Agent-managed work. It builds on #464 toward #258 and the 0.4.1 release.Registered work defaults to
0.03125seconds, one cycle of KERIA's existing 32 Hz scheduler. Explicit0.0remains supported for next-cycle scheduling. The only slower default isreleaserat60.0seconds: scanning all open Agents for the default 24-hour inactivity timeout does not require a scan every scheduler cycle. The root scheduler cadence is unchanged.Configuration and compatibility
tocks.signifyand 29 KERIpy settings directly undertocks. Apply KERIA's one-cycle defaults through a copied core registry without changing KERIpy's process-global defaults.submitter,bootServer,adminServer,httpServer,shutdown,signalExpiry, andreleaser.{"tocks":{"escrower":1.0}}remains valid; the canonical form is{"tocks":{"signify":{"escrower":1.0}}}. Removal is deferred to a future announced release.KERIA_ESCROWER_TOCKand the group overrideKERIA_AGENT_TOCK. The Agent group covers its 13 work settings and excludes servers, shutdown, signal expiry, and release scans. Core aliases remain within the KERIpy namespace.Complete tocks configuration (all 48 defaults)
Merge this block into the Agency JSON config. Values are seconds; omitted settings use these defaults. Group aliases are omitted because every individual setting is shown.
{ "tocks": { "witnessMsg": 0.03125, "witnessEscrow": 0.03125, "witnessCue": 0.03125, "indirectorMsg": 0.03125, "indirectorCue": 0.03125, "indirectorEscrow": 0.03125, "mailboxPoll": 0.03125, "mailboxMsg": 0.03125, "mailboxEscrow": 0.03125, "pollerEvent": 0.03125, "pollerConnect": 0.03125, "receiptIntercept": 0.03125, "reactorMsg": 0.03125, "reactorCue": 0.03125, "reactorEscrow": 0.03125, "reactantMsg": 0.03125, "reactantCue": 0.03125, "reactantEscrow": 0.03125, "respondant": 0.03125, "receiptor": 0.03125, "oobi": 0.03125, "witnessReceiptor": 0.03125, "witnessReceiptorIdle": 0.03125, "witnessInquisitor": 0.03125, "witnessPublisher": 0.03125, "registrarEscrow": 0.03125, "credentialerEscrow": 0.03125, "counselorEscrow": 0.03125, "anchorerEscrow": 0.03125, "signify": { "initer": 0.03125, "querier": 0.03125, "escrower": 0.03125, "parser": 0.03125, "witnesser": 0.03125, "delegator": 0.03125, "exchangeSender": 0.03125, "granter": 0.03125, "admitter": 0.03125, "groupRequester": 0.03125, "seeker": 0.03125, "exchangecue": 0.03125, "submitter": 0.03125, "bootServer": 0.03125, "adminServer": 0.03125, "httpServer": 0.03125, "shutdown": 0.03125, "signalExpiry": 0.03125, "releaser": 60.0 } } }Scheduling and lifecycle
Agency.get()withAgency.create()when Agent databases use a nonempty base.SignalExpireragainst the notifier's signal queue. Expiry scans a snapshot without yielding during iteration, avoiding deque mutation across yields while preserving the existing expiration timeout.Validation
Regression coverage includes configuration precedence and validation, legacy normalization and real-file reopening, database-base config lookup, independent Agent worker bindings, runtime cadence forwarding, signal expiry, and Agency service bindings. Sample-config tests check completeness and default values.
At commit
73fb151, Linux and macOS test jobs (including lint and formatting), coverage, Docker build/start, and both Codecov checks pass.