feat(projects): PR-PT-5 Sustainment + Handoff stages — Plan 1 complete#176
Merged
Conversation
4 vitest cases: tick count, enabled/disabled handoff threshold, click handler. Threshold is 4 consecutive on-target ticks; drifted status also disables CTA. Co-Authored-By: ruflo <ruv@ruv.net>
Renders record title + explanatory note; links out to legacy Sustainment panel via onOpenLegacy callback. Inline form embedding deferred to follow-up plan. Co-Authored-By: ruflo <ruv@ruv.net>
Co-Authored-By: ruflo <ruv@ruv.net>
PR-PT-5.6: source SustainmentRecord + ControlHandoff from activeHub blob, derive HandoffChecklistInputs, and forward all 6 new props through ProjectsTabView → IPDetailPage in both PWA and Azure. Export HandoffChecklistInputs from @variscout/ui/ipDetail barrel. Co-Authored-By: ruflo <ruv@ruv.net>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Plan 1 PR-PT-5 of 5 — Sustainment + Handoff stages of the IP detail page per spec §3.3 + §3.4. Closes Plan 1 (Projects tab + IP detail foundation).
Built in
@variscout/ui:SustainmentOverview— sustained-vs-drifted banner + cadence tick pills (Wk 1 ✓ · Wk 2 ✓ …) + per-cause in-control rows + "→ Start Handoff" CTA (disabled when consecutiveOnTargetTicks < 4 or status === 'drifted')SustainmentSections— V1 shim linking to legacy Sustainment activeView panelHandoffOverview— operationalization checklist (control plan / training / cadence / owner ack) + "Nudge" CTA when ack pending + Report jump-out + PDF export slotHandoffSections— V1 shim linking to legacy Handoff activeView panelIPDetailPageextended: all 4 stages (Charter / Approach / Sustainment / Handoff) × 2 modes (Overview / Sections) wired; "Start Handoff" uses internalsetActiveStage('handoff'); placeholder fallbacks for un-linked Sustainment/Handoff recordsWired in apps:
ProjectsTabViewacceptssustainmentRecord,controlHandoff,handoffInputs,onOpenLegacySustainment,onOpenLegacyHandoff,onNudgeProcessOwnerpropsApp.tsx+ AzureEditor.tsxsource records fromsessionHub.sustainmentRecords/.controlHandoffs(filtered byimprovementProjectId+deletedAt === null)panels.showSustainment(investigationId)/panels.showHandoff(investigationId)opens the existing V1 formsEngagementEventwebhookControlHandoff type discovery (informed V1 mapping):
status: 'pending' | 'acknowledged' | 'operational',referenceUri?,signoff?— nocontrolPlanTextortrainingRefdirectlytrainingDeliveredfromsignoff?.approvedBy,processOwnerAcknowledgedfromstatus !== 'pending';controlPlanDocumentedset tofalseplaceholder (Plan 4 will hook in the real control plan reference)Test plan
pnpm --filter @variscout/ui test— IPDetail 10 files, 38 tests greenpnpm --filter @variscout/pwa test— 344 passed, 1 skippedpnpm --filter @variscout/azure-app test— 1307 passed (9 pre-existing IndexedDB rejections unrelated)pnpm --filter @variscout/pwa tsc --noEmit— cleanpnpm --filter @variscout/azure-app tsc --noEmit— cleanPlan 1 verification matrix
[Home] [Process] [Analyze] [Investigation] [Improve] [Projects] [Report]in PWA + AzurederiveStageStateImprovementProject.reflection?field type-checks + round-trips through.vrsbash scripts/pr-ready-check.sh— non-flake steps greenSpec coverage (Plan 1 complete)
Deferred to Plans 2-4 (per the parent spec):