Commit Graph

128 Commits

Author SHA1 Message Date
80309950bc Close CUST-WP-0045-T06 — canary green on 2026-06-02
The daily-triage workflow completed end-to-end with all three evidence
surfaces (working-memory note, State Hub daily_triage event, ActivityRun
row) referencing the same run_id f9b97749. Backend: llm-connect against
OpenRouter anthropic/claude-sonnet-4, 12.85s end-to-end.

Add Implementation Notes - 2026-06-02 capturing the bug chain found and
fixed today (five llm-connect commits, two activity-core commits), the
backend choice and its consequences for the next scheduled run, and an
explicit carve-out: the operational cutover step (pause Codex, flip
enabled: true, sync schedules) is intentionally deferred to operator
action and remains a prerequisite for T08.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 15:50:35 +02:00
1874ab52bb Pin llm-connect to :8088 in CUST-WP-0045 cutover runbook
llm-connect's CLI default port (:8080) collides with the dev stack's
temporal-ui container. Hit during the 2026-06-01 cutover attempt with
OSError: Address already in use. Update Steps 3, 5, and 6 to use :8088
and note the conflict reason inline so the next operator does not
rediscover this the slow way.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 03:32:01 +02:00
9d1a35e61b Note 2026-06-01 cutover-runbook session on CUST-WP-0045
T06 remains in_progress — no canary was rerun. Capture the runbook deliverable
(workplans/CUST-WP-0045-cutover-runbook.md @ 8ef5399), the still-unchanged
upstream fixes that should let the patched canary succeed, and the two
operational gotchas the runbook now documents (host-mode env overrides vs.
Docker-network .env; Claude CLI quota collision when triggering from inside
an active Claude Code session). Bump updated: to 2026-06-01.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 02:16:50 +02:00
8ef5399c07 Add CUST-WP-0045 T06 cutover runbook
Exact command sequence to rerun the patched real-LLM canary and, on success,
perform the Codex → activity-core cutover. Captures the heads-up about CLI
session collision, the host-mode env-var overrides for the worker/API, and the
verification queries for all three evidence surfaces. Frontmatter uses
type: runbook so the consistency checker does not treat it as a workstream.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 01:55:27 +02:00
24d6f2d178 Activity core practicability trial stuff 2026-05-23 03:17:02 +02:00
56d7fcb2d4 Add hourly RecentlyOnScope activity definition 2026-05-22 16:14:10 +02:00
1e3f80e5e8 hourly recently notifications 2026-05-22 13:43:11 +02:00
a28deec772 Record daily triage schema canary blocker 2026-05-21 03:19:27 +02:00
ed6a13c8d7 Use llm-connect profile for daily triage 2026-05-19 20:56:07 +02:00
2e50588837 Record daily triage activity-core canary blocker 2026-05-19 20:14:19 +02:00
350c11c4f9 Make daily triage ActivityDefinition executable 2026-05-19 19:09:42 +02:00
925fee3f90 Record CUST-WP-0045 report sinks 2026-05-19 18:37:18 +02:00
92146099bc Record CUST-WP-0045 instruction execution 2026-05-19 18:29:02 +02:00
4992d40a8b Record CUST-WP-0045 implementation start 2026-05-19 15:59:32 +02:00
842198c1d8 Register CUST-WP-0045 with State Hub 2026-05-19 15:52:29 +02:00
44be583cdd Add activity-core daily triage runner workplan 2026-05-19 15:49:47 +02:00
5d478cf746 Remove migrated State Hub workplans 2026-05-18 01:33:25 +02:00
45d296b236 Implement daily State Hub WSJF triage 2026-05-17 23:10:57 +02:00
a8cfa735f3 Add daily State Hub WSJF triage workplan 2026-05-17 22:39:06 +02:00
266b22da86 docs: close state hub extraction 2026-05-17 21:36:40 +02:00
0f4eb756f3 docs(state-hub): close extraction handoff 2026-05-17 20:28:34 +02:00
0375e57626 chore(state-hub): decouple embedded service tree 2026-05-17 20:16:30 +02:00
b94840b608 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - CUST-WP-0043-T07: todo → in_progress
2026-05-17 20:03:04 +02:00
f7a5aa46c5 docs(state-hub): record extraction progress 2026-05-17 19:19:26 +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
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
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
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
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
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
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
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
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
a2d0003613 updated workplan and synced with railiance workplans 2026-05-03 01:08:37 +02:00
49696cb0c2 Backup and restore drill 2026-05-02 23:56:20 +02:00
dd887c8c81 Updated workplans for migrating the custodian to Railiance01 2026-05-02 23:38:56 +02:00
c48f26dd1f Overview shows workstreams by repo now and allows drilldown 2026-05-02 12:01:45 +02:00
131ee4bd5d Added IAM Profile standard 2026-05-02 10:59:21 +02:00
f4e00f5070 Cleanup of documentation 2026-05-02 00:46:07 +02:00
95bcc5c83c Task flow engine implementation 2026-05-02 00:21:14 +02:00
4be941e65e Implemented foundation of task-flow-engine 2026-05-01 22:19:03 +02:00
5d50dee3f1 Implemented Ad-Hoc Task handling 2026-05-01 21:27:52 +02:00