Skip to content
This repository was archived by the owner on May 26, 2026. It is now read-only.

feat(kora): KR-FE-PROMOTION-REVIEW-AND-V2-MEGABUCKET — review panel + probe V2 + kora-actions extended#191

Merged
rafe-walker merged 1 commit into
feature/phase2-upgradesfrom
feat/kora-KR-FE-PROMOTION-REVIEW-AND-V2-MEGABUCKET
May 24, 2026
Merged

feat(kora): KR-FE-PROMOTION-REVIEW-AND-V2-MEGABUCKET — review panel + probe V2 + kora-actions extended#191
rafe-walker merged 1 commit into
feature/phase2-upgradesfrom
feat/kora-KR-FE-PROMOTION-REVIEW-AND-V2-MEGABUCKET

Conversation

@rafe-walker

Copy link
Copy Markdown
Owner

Summary

Three batched FE deliverables completing cockpit visibility for the most recent BE landings (#184/#186).

  • A) PromotionReviewPage — 5th AuditPanelKit consumer; approve/reject/edit-before-approve UX over PR KR-PROMOTE-PHRASEBOOK-FOUNDATION-MEGABUCKET — first promotion loop end-to-end #186 endpoints; sidebar PendingBadge polled every 60s.
  • B) ProbeInvestigationsPage V2 — V1NotesBanner removed; BE endpoint extended to JOIN all 4 streams (probe.wake_requested + reasoning.tool_called + probe.investigation_completed + slack_dm_log.jsonl) on caller_session_id; dm_status chip filter; per-row cost/model/duration/DM-sent summary + 🔧 fix attempted badge.
  • C) KoraActionsPage extended seams — 3 new categories (promotion_proposed / promotion_approved / promotion_rejected) with deep-link to /promotions/phrasebook?focus=<id>.

Drift-guard pins (3)

Pair Test Values
PROMOTION_STATUS_VALUES_PROMOTION_STATUS_VALUESPROPOSAL_STATUS_VALUES test_promotion_status_drift_guard pending / approved / rejected / expired
PROBE_DM_STATUS_VALUES_DM_STATUS_VALUES test_dm_status_drift_guard sent / failed_send / engine_unavailable_fallback / engine_unavailable_failed_send
KORA_ACTION_CATEGORIES_KORA_ACTION_CATEGORIES (extended) test_action_categories_drift_guard 9-value enum, now incl. promotion_proposed / promotion_approved / promotion_rejected

Plus test_seam_literal_includes_all_source_seams extended to assert probe.investigation_completed + 3 promotion seams in the SeamName Literal so read_audit_entries can't silently return [].

Screenshots

All 4 in web/docs/promotion-review-and-v2-megabucket/:

  • promotion_review.png — Deliverable A: 3 pending proposals, one in edit-before-approve mode
  • probe_investigations_v2.png — Deliverable B: 4-stream join, dm_status filter, autofix + DM failed cards
  • kora_actions_extended.png — Deliverable C: timeline with all 6+ action categories incl. promotion-loop deep-links
  • sidebar_pending_badge.png — Deliverable A: NavItem with yellow PendingBadge=3

Test plan

  • tsc -b clean
  • vite build clean (1.88 MB bundle, no new warnings)
  • 104 panel + drift-guard tests pass
  • Full tests/kora_cli/ suite passes 2533 (6 pre-existing failures in unrelated backup/cron/gateway/config modules — confirmed identical on feature/phase2-upgrades HEAD)
  • Operator smoke: open /promotions/phrasebook → see proposals + approve flow
  • Operator smoke: open /probe-investigations → confirm V1NotesBanner gone + cost/model/DM chips populate when probe fires
  • Operator smoke: open /kora-actions → confirm promotion rows appear with deep-link to review page

STOP-ASKs resolved inline

  • BE /api/probe-investigations needed a small JOIN addition (not a separate bucket — kept inline with the FE work). Added _project_investigation_completed + _project_probe_dm_entry + _read_probe_dm_log_entries helpers; total +120 LoC.
  • Edit-before-approve UX inlined into ProposalCard rather than refactoring PhrasebookEditor — the proposal shape (3 fields + review_notes) is narrower than PhrasebookEntry; copy-first + revisit later.

Next CC#2 dispatch

FE consumer of CC#1's promotion-snapshot-expand loop once that lands — likely an extension to PromotionReviewPage that surfaces "rendered with current snapshot" preview alongside the proposed reply_template.

🤖 Generated with Claude Code

… probe V2 + kora-actions extended

Three deliverables that together complete cockpit visibility for the
most recent BE landings (#184/#186).

A) KR-FE-PROMOTION-REVIEW-PANEL
   * New /promotions/phrasebook page (5th AuditPanelKit consumer)
   * Approve / reject / edit-before-approve UX over PR #186 endpoints
   * Sidebar PendingBadge — yellow pill polled every 60s from
     /api/promotions/phrasebook/pending; hidden when count=0
   * Drift-guard: PROMOTION_STATUS_VALUES (api.ts) ↔
     _PROMOTION_STATUS_VALUES (web_server.py) ↔ PROPOSAL_STATUS_VALUES
     (proposer.py) pinned by test_promotion_status_drift_guard

B) KR-FE-PROBE-INVESTIGATION-VIEWER-V2
   * V1NotesBanner removed — PR #184 closed all 3 deferred gaps
   * BE /api/probe-investigations extended to JOIN 4 streams:
     probe.wake_requested + reasoning.tool_called +
     probe.investigation_completed (#184) +
     slack_dm_log.jsonl outbound entries (#184), all on
     caller_session_id="probe:{probe}:{category}"
   * dm_status chip filter (failed_send first per CC#1's #184 rec)
   * Per-row "🔧 fix attempted" badge when autofix rode along
   * Per-row investigation summary band: cost USD, model used,
     duration, DM-sent timestamp, summary text
   * Drift-guard: PROBE_DM_STATUS_VALUES (api.ts) ↔
     _DM_STATUS_VALUES (web_server.py) pinned by
     test_dm_status_drift_guard

C) KR-FE-KORA-ACTIONS-EXTENDED-SEAMS
   * 3 new action categories: promotion_proposed / promotion_approved
     / promotion_rejected (deep-link to /promotions/phrasebook?focus=)
   * BE summary helpers for promotion.proposed / .approved / .rejected
     seams (PR #186)
   * Drift-guard test extended: 9-value enum now includes the 3
     promotion categories + investigation_completed (#184)

Tests: 104 panel + drift-guard tests added/updated; full kora_cli
suite passes (2533) modulo 6 pre-existing failures in unrelated
backup/cron/gateway/config modules.

Screenshots: see web/docs/promotion-review-and-v2-megabucket/.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rafe-walker rafe-walker merged commit 615b95e into feature/phase2-upgrades May 24, 2026
@rafe-walker rafe-walker deleted the feat/kora-KR-FE-PROMOTION-REVIEW-AND-V2-MEGABUCKET branch May 24, 2026 06:48
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant