Commit Graph

119 Commits

Author SHA1 Message Date
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
1697477f55 Delegation of scope functionality to repo-scoping completed 2026-05-01 14:57:24 +02:00
21dafaa777 New workplan for better adhoc task management 2026-05-01 14:41:16 +02:00
f99d77d539 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-01:
  - update .custodian-brief.md for the-custodian
2026-05-01 00:55:53 +02:00
977d0814de chore(workplan): mark CUST-WP-0033 done — all tasks completed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 15:31:29 +02:00
2cd3099ebf feat(canon): add Interface Change Registry concept and workplan
Concept doc captures the design for coordinated API evolution in agent
ecosystems: InterfaceChange entity, draft→published→resolved lifecycle,
TPSC-derived dependency routing, inbox-based notifications, pre-change
coordination via planned_for, and deliberate deferral of webhooks.

CUST-WP-0033 workplan: 6 tasks (model, API, dispatch integration,
MCP tools, dashboard, webhook EP).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 15:13:11 +02:00
9bc761c2b5 feat(railiance): implement CUST-WP-0032 Haskell build machine infra
Packer build definition, cloud-init autoinstall, GHCup toolchain script,
boot-time registration agent (state-hub + autossh dual tunnel), systemd
unit, key injection, remote-build Makefile, smoke test, and deployment
README. All 15 tasks complete.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-20 12:01:30 +02:00
efe1387ede refine(CUST-WP-0032): incorporate all four architecture decisions
- Packer uses NAT during build; setup-vm.sh does post-import bridged config
- Bake GHC 9.8.4 (primary) + 9.6.6 (LTS coverage); drop Stack + HLS
- state-hub always via forward tunnel port 18000 (CoulombCore pattern)
- autossh opens -R (reverse SSH) + -L 18000 (state-hub forward) together
- Decisions section replaces Open Questions; all four resolved 2026-04-20

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 01:05:28 +02:00
f432b76613 feat(railiance): add CUST-WP-0032 Haskell build machine workplan
15-task plan across 5 phases: Packer VirtualBox image, boot-time
registration agent (POST /capability-catalog/), autossh SSH bridge
integration (ports 12221-12230), state-hub capability bootstrap,
and remote build Makefile workflow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 01:00:26 +02:00
d58ef71339 feat(capability-registry): CUST-WP-0031 domain capability registry
- Migration p3k4l5m6n7o8: nullable repo_id FK on capability_catalog
- PATCH /capability-catalog/{id} endpoint for back-filling repo attribution
- register_capability MCP tool accepts optional repo_slug
- get_domain_summary now includes compact capabilities list (type+title+repo_slug)
- New get_capability_profile MCP tool: domain → repos → capabilities tree
- 6 repo descriptions populated; 25 catalog entries attributed to repos
- 9 new capabilities registered for personhood, foerster_capabilities, coulomb_social
- TOOLS.md: Capability Catalog & Requests section with full tool reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 17:23:45 +02:00