TASKSET 8 — what landed
Cosmetic spec-compliance, intentionally last in the campaign.lore/src/app/overview/page.tsx— new landing. Hero stats (Total / Pending Review / Success Rate / Active Agents), recent decisions table (top 10, links to/search), decisions-by-type list (top 8 sorted), governance summary card with a one-click jump to/governance. All three fetches go through theResult<T>seam; failures surface viaDegradedBanner, never fake-empty.lore/src/app/page.tsx— root now redirects to/overviewinstead of/search.lore/src/components/knowledge/collapsible-card.tsx— small client component disclosure. Default-open; chevron + button header;aria-expandedfor screen readers.lore/src/app/governance/page.tsx— Roles & Permissions card converted toCollapsibleCard; the existing “Edit on GitHub” link (added back in TASKSET 2) remains.lore/src/components/layout/sidebar.tsx— leadingOverviewentry using aLayoutDashboardicon. Existing entries unchanged.
Decisions worth noting
- Overview is read-only and link-driven. No new mutations. Every
action goes via existing pages (
/search,/governance,/decisions/:id). Keeps the surface coherent — one page, one job. - Collapsible default-open. Repeat visitors get the affordance; first-timers never miss the matrix. The opposite default would punish discovery.
- No “favourite repo” persistence yet. The page reads
repofromsearchParamsand falls back todevarno-cloud/kb. Persisted preference (cookie or airlock metadata) is a follow-up; not in this campaign.
Verification done
npx tsc --noEmitclean.npx next buildclean. New/overviewroute at 1.77 kB; existing/governancegrew 845 B → 1.19 kB for the collapsible client chunk.- All four
Resultfailure modes covered on/overviewvia the sharedDegradedBanner. - Governance page still links to
https://github.com/<owner>/blob/main/.agents/COUNCIL.yaml(no change to that link).
What does NOT exist yet
- No favourite-repo persistence.
- No “your recent activity” panel — would need a per-user index that doesn’t exist server-side.
- No CAIRN cross-link on
/overview(graduation backlinks live on decision detail; surfacing aggregate cairn signal here is a separate decision).
Campaign-level note
TASKSETs 1–8 ofatlas/campaigns/2026-04-25-cairnet-lore-coupling.md
are now closed. Open follow-ups, captured across earlier learnings:
- Live pebble seam smoke run (TASKSET 2 punch list).
- Upstream
tool_argstypo fix inKnowledgeProvider._handle_log_decision(TASKSET 7 inline comment); when fixed, swap the direct GitHub call incairn_graduation_service.pyfor aToolCallinvocation. - Reconciliation worker for the GitHub-write / DB-commit window (TASKSET 7).
- NATS audit emission for graduations (TASKSET 7).
- Decline-graduation reverse path (TASKSET 7).
- Decay worker (TASKSET 4 — currently query-time filter only).
- Workspace linking for
@devarno/sdk-chartsto retire the duplicatedgraph-primitive.tsx(TASKSETs 3 & 6).