Skip to content

Expose graph-local fact readiness status#314

Merged
justinjoy merged 1 commit into
mainfrom
fact-runtime-status
May 14, 2026
Merged

Expose graph-local fact readiness status#314
justinjoy merged 1 commit into
mainfrom
fact-runtime-status

Conversation

@justinjoy

Copy link
Copy Markdown
Contributor

Summary

  • cache per-graph fact replay status alongside loaded graph engines
  • include fact subsystem state in /readyz?format=json
  • add /facts/status for redacted tenant/graph readiness details
  • keep wyctl status --readiness compatible with extra readiness JSON fields

Validation

  • meson test -C builddir-issue50-fact --print-errorlogs
  • meson test -C builddir-issue50-default --print-errorlogs
  • meson test -C builddir-ci-pr daemon-http-decide daemon-http-decide-audit wyctl-policy-daemon wyctl-basic wyrelogd-healthz wyctl-status-daemon --print-errorlogs

Fact graph replay can partially fail without making the daemon unavailable, so readiness needs a cached subsystem view and a detail endpoint that reports graph-local state without exposing storage paths or raw storage errors.

Constraint: preserve existing /healthz, text /readyz, and wyctl readiness behavior while adding JSON subsystem fields.

Rejected: probing fact stores during every readiness request | cached replay results avoid status endpoints becoming storage work.

Confidence: high

Scope-risk: moderate

Directive: keep fact graph replay failures graph-local unless startup cannot open the configured fact root.

Tested: meson test -C builddir-issue50-fact --print-errorlogs; meson test -C builddir-issue50-default --print-errorlogs; meson test -C builddir-ci-pr daemon-http-decide daemon-http-decide-audit wyctl-policy-daemon wyctl-basic wyrelogd-healthz wyctl-status-daemon --print-errorlogs.

Not-tested: Windows/macOS local runs.

Co-authored-by: OmX <omx@oh-my-codex.dev>
@justinjoy justinjoy merged commit 75799e0 into main May 14, 2026
3 checks passed
@justinjoy justinjoy deleted the fact-runtime-status branch May 14, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant