Commit Graph

1826 Commits

Author SHA1 Message Date
f7a5aa46c5 docs(state-hub): record extraction progress 2026-05-17 19:19:26 +02:00
7812d9a053 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 19:18:07 +02:00
a5c44d7bc9 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 19:15:40 +02:00
9df48a7b4c chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 19:11:58 +02:00
1e90685368 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 18:52:12 +02:00
c01bc242e1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - CUST-WP-0043-T01: todo → in_progress
2026-05-17 18:52:05 +02:00
ab77698702 docs(state-hub): plan repo extraction 2026-05-17 18:48:31 +02:00
4121fc11dc chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 18:36:41 +02:00
793c91bc95 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 18:35:24 +02:00
45b1220e2f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 18:16:57 +02:00
ca8a09ed04 feat(state-hub): CUST-WP-0040 — NATS lifecycle event publishing for activity-core
Makes the state hub an event publisher so activity-core can drive
maintenance automation declaratively via ActivityDefinitions, rather
than the hub creating tasks itself.

- api/events/: lazy JetStream publisher + EventEnvelope mirroring
  activity-core's contract; no-op when NATS_URL unset, fire-and-forget
  with logged failures so publishing never breaks an API request.
- Wired publishers on the five v1.0 lifecycle events:
    org.statehub.repo.registered        (POST /repos/)
    org.statehub.workstream.completed   (PATCH /workstreams/* on transition)
    org.statehub.decision.resolved      (POST /decisions/*/resolve)
    org.statehub.domain.goal.activated  (POST /domain-goals/*/activate)
    org.statehub.task.stale             (scripts/cleanup_stale_tasks.py)
- docs/nats-event-subjects.md: subject naming convention + catalog.
- docs/cron-migration.md: design stub for replacing custodian-sync
  systemd timer and cleanup-stale cron with ActivityDefinitions
  (depends on activity-core WP-0003).
- docs/activity-core-delegation.md: protocol, invariants, cutover plan.
- SCOPE.md: declares activity-core as downstream event consumer and
  restates that the state hub stays a read model, not a task factory.

Workplan: workplans/CUST-WP-0040-state-hub-nats-activity-core-integration.md
242 tests pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 05:49:29 +02:00
2bc7fd8ce7 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 05:46:48 +02:00
3f098f1c0d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for the-custodian
2026-05-17 05:44:22 +02:00
a8ecdbfb4c Fix State Hub task links for NATS workplan 2026-05-15 15:09:13 +02:00
66db2da9d5 Update State Hub image build provenance 2026-05-15 15:02:30 +02:00
0eb2ef0650 perf(api): CUST-WP-0041 — DB indexes, TTL caches, noload on list endpoints
- Migration t7o8p9q0r1s2: indexes on tasks.status, tasks(workstream_id,status),
  workstreams.status, sbom_snapshots(repo_id,snapshot_at)
- workplan-index: 30 s TTL cache + ?refresh param (4171 ms → 16 ms on hit)
- /state/summary: 15 s TTL cache, bypassed on Cache-Control: no-cache
- /topics/: noload(workstreams, decisions, progress_events) (2382 ms → 115 ms)
- /domains/: noload(topics, repos, goals) (2252 ms → 39 ms)
- /repos/: noload(goals) (2222 ms → 599 ms first / fast on repeat)
- conftest: reset TTL caches between tests to prevent bleed-through

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 11:12:17 +02:00
694b493deb chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for the-custodian
2026-05-15 11:10:29 +02:00
e0f8bbfbfc chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - CUST-WP-0041-T4: todo → done
2026-05-15 11:10:23 +02:00
8c71fcceed chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - CUST-WP-0041-T3: todo → done
2026-05-15 11:10:23 +02:00
c6b213e0c0 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - CUST-WP-0041-T2: todo → done
2026-05-15 11:10:23 +02:00
8f03351e6f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - CUST-WP-0041-T1: todo → done
2026-05-15 11:10:23 +02:00
2afc8cc8aa chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for the-custodian
2026-05-15 10:55:14 +02:00
ee63051a50 chore(workplan): stub CUST-WP-0040 state hub NATS / activity-core integration
Workplan for delegating maintenance automation from the state hub to
activity-core via NATS JetStream. Covers NATS publisher wiring, subject
schema, lifecycle event emission, cron migration stubs, and delegation
protocol docs.

Hub workstream: d8ac100b-a844-46a5-9684-415df0d32539

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 18:12:29 +02:00
49f329af82 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for the-custodian
2026-05-14 18:04:29 +02:00
41ce4ede2c feat(dashboard): poll optimisation — T4, T5, T6
T4: workstreams.md and dependencies.md now call /state/deps instead of the
    full /state/summary — removes 2 heavy 10-table queries per 60 s cycle.

T5: index.md's 4 independent polling loops (summaryState, sbomSnapState,
    regsState, wsChartState) consolidated into a single pageState generator
    with one Promise.all batch and a shared backoff counter.

T6: config.js gains waitForVisible(ms) — pauses polling entirely while the
    tab is hidden and fires immediately on visibilitychange.  pollDelay()
    simplified (hidden-tab POLL_HIDDEN logic removed).  All 16 polling pages
    migrated from await sleep(pollDelay(...)) to await waitForVisible(pollDelay(...)).

CUST-WP-0039 complete — all 6 tasks done.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 17:58:18 +02:00
1603085792 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-11:
  - update .custodian-brief.md for the-custodian
2026-05-11 17:58:03 +02:00
9e7a31bc0c chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-11:
  - update .custodian-brief.md for the-custodian
2026-05-11 17:33:21 +02:00
512c0a73ed feat(api): dashboard poll optimisation — T1, T2, T3
T1: Cache-Control max-age=60 on /topics/, /repos/, /domains/ list endpoints
    so repeated dashboard polls within a minute are served from browser cache.

T2: ETag middleware (md5 hash) on all JSON GET responses with conditional-GET
    (304 Not Modified) support; If-None-Match and ETag added to CORS headers.
    ETag registered inside CORS so 304s automatically carry CORS headers.

T3: GET /state/deps — lightweight dep-graph endpoint returning open workstreams
    with depends_on/blocks edges only, skipping the 10-table full-summary query.
    Prerequisite for T4 (switching workstreams.md and dependencies.md off /state/summary).

Workplan: CUST-WP-0039-dashboard-poll-optimization.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 17:26:30 +02:00
6f3a46dd07 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-11:
  - update .custodian-brief.md for the-custodian
2026-05-11 15:47:39 +02:00
e01298177e fix(api): restrict uvicorn --reload to source dirs only
Watching .venv/ (6k files) and dashboard/node_modules/ (6k files) was
causing sustained ~42% CPU on the uvicorn main process.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:26:48 +02:00
646fb21113 Load limiting safeguards 2026-05-06 04:04:53 +02:00
c687db2c48 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-06:
  - update .custodian-brief.md for the-custodian
2026-05-06 01:37:20 +02:00
140ef33f35 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-06:
  - update .custodian-brief.md for the-custodian
2026-05-06 01:02:49 +02:00
30f7ac8fea Updated repo onboarding 2026-05-04 19:18:10 +02:00
bfed370a6e Improved workplan dependency management facilities 2026-05-04 11:45:24 +02:00
4d6164e81b register project fix 2026-05-04 11:04:25 +02:00
85bf0bc180 railiance-bootstrap to railiance-cluster rename cleanup 2026-05-03 16:30:07 +02:00
190704a4eb Locked in cytoscape.js as visualization for dep graph 2026-05-03 01:43:50 +02:00
6fe8926c6d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-03:
  - update .custodian-brief.md for the-custodian
2026-05-03 01:20:10 +02:00
a2d0003613 updated workplan and synced with railiance workplans 2026-05-03 01:08:37 +02:00
93cb0dd308 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-03:
  - update .custodian-brief.md for the-custodian
2026-05-03 00:02:25 +02:00
49696cb0c2 Backup and restore drill 2026-05-02 23:56:20 +02:00
d152881198 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-02:
  - update .custodian-brief.md for the-custodian
2026-05-02 23:48:36 +02:00
595003306b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-02:
  - update .custodian-brief.md for the-custodian
2026-05-02 23:40:47 +02:00
dd887c8c81 Updated workplans for migrating the custodian to Railiance01 2026-05-02 23:38:56 +02:00
94916cbfb0 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-02:
  - update .custodian-brief.md for the-custodian
2026-05-02 23:37:18 +02:00
ef201ada83 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-02:
  - update .custodian-brief.md for the-custodian
2026-05-02 23:20:52 +02:00
61aad551e0 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-02:
  - update .custodian-brief.md for the-custodian
2026-05-02 23:03:28 +02:00
4010ea1bcf chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-02:
  - update .custodian-brief.md for the-custodian
2026-05-02 22:48:01 +02:00
f6d31f999d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-02:
  - update .custodian-brief.md for the-custodian
2026-05-02 22:31:07 +02:00