docs: record Task 2 chrome review fix
This commit is contained in:
@@ -0,0 +1,86 @@
|
|||||||
|
# Task 2 Implementation Report
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
Task 2 separates target health from replay playback. A healthy configured target
|
||||||
|
now remains `Live target ready` while the demo timeline is replaying, while the
|
||||||
|
reviewed-recording fallback remains available when no target is configured or
|
||||||
|
health probing is disabled. Health probing is enabled only for main routes whose
|
||||||
|
scene is included by Task 1's `isDemoChromeScene`, including Scene 8.
|
||||||
|
|
||||||
|
## Changed Files
|
||||||
|
|
||||||
|
- `web/apps/console/src/presentation/presentation-target-status.ts`
|
||||||
|
- Removed the `replayActive` argument and replay-specific healthy-target
|
||||||
|
branch.
|
||||||
|
- Preserved the public `PresentationTargetHealth` and `TargetProbeState`
|
||||||
|
types and existing target/probe/liveActive/failureReason inputs.
|
||||||
|
- `web/apps/console/src/presentation/presentation-target-status.test.ts`
|
||||||
|
- Updated healthy replay expectations to `ready` / `Live target ready`.
|
||||||
|
- Added explicit no-target reviewed-recording fallback coverage.
|
||||||
|
- `web/apps/console/src/presentation/usePresentationTargetStatus.ts`
|
||||||
|
- Removed replay coupling from health calculation.
|
||||||
|
- Kept disabled probing generic and ensured it does not call
|
||||||
|
`workflow.health`.
|
||||||
|
- `web/apps/console/src/presentation/usePresentationTargetStatus.test.tsx`
|
||||||
|
- Updated direct replay readiness expectations.
|
||||||
|
- Added disabled-probing coverage.
|
||||||
|
- `web/apps/console/src/presentation/PresentationRoute.tsx`
|
||||||
|
- Replaced the Scene 8 exception with `isDemoChromeScene`-based probing for
|
||||||
|
main routes.
|
||||||
|
- `web/apps/console/src/presentation/PresentationRoute.test.tsx`
|
||||||
|
- Covered healthy direct replay status, Scene 8 probing with a local
|
||||||
|
composer, title-route non-probing, and existing live controls under the
|
||||||
|
updated route behavior.
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
- TDD red run: the updated tests failed against the old replay branch, disabled
|
||||||
|
Scene 8 probe, and title-route probe behavior as expected.
|
||||||
|
- Focused tests:
|
||||||
|
- `pnpm --dir web --filter @lda/console test -- src/presentation/presentation-target-status.test.ts src/presentation/usePresentationTargetStatus.test.tsx src/presentation/PresentationRoute.test.tsx`
|
||||||
|
- Result: 3 test files passed, 60 tests passed.
|
||||||
|
- Typecheck:
|
||||||
|
- `pnpm --dir web typecheck`
|
||||||
|
- Result: all workspace typecheck projects passed.
|
||||||
|
- `git diff --check` passed.
|
||||||
|
|
||||||
|
## Deviations
|
||||||
|
|
||||||
|
The focused route tests that asserted live controls on the default title route
|
||||||
|
were moved to a demo scene hash, because non-demo routes must no longer probe or
|
||||||
|
show target health actions. The live action assertions now account for both the
|
||||||
|
operator-chat and demo-stage controls that are present on a healthy demo route.
|
||||||
|
|
||||||
|
No footer rendering or file-browser changes were made.
|
||||||
|
|
||||||
|
## Concerns
|
||||||
|
|
||||||
|
The existing `OperatorChat.tsx` still has its own `isScene8` action-visibility
|
||||||
|
condition. It was intentionally left unchanged because it is not target health
|
||||||
|
or route probing logic, and changing it would exceed this task's scope.
|
||||||
|
|
||||||
|
## Review Fix: Hide Target Status Outside Demo Arc
|
||||||
|
|
||||||
|
- `PresentationFooter` now derives demo-arc membership from `isDemoChromeScene`
|
||||||
|
and omits the target status badge for title and other non-demo routes.
|
||||||
|
- Added footer-level coverage for a non-demo `conclusion` scene and route-level
|
||||||
|
coverage for `#scene/conclusion/questions` with a configured target.
|
||||||
|
- No `PresentationStage`, `PresentationDemoRail`, file-browser, or unrelated
|
||||||
|
chat rendering changes were needed.
|
||||||
|
|
||||||
|
## Review Fix Verification
|
||||||
|
|
||||||
|
- TDD red run: both new regressions failed against the unconditional footer badge.
|
||||||
|
- Covering tests:
|
||||||
|
- `pnpm --dir web --filter @lda/console test -- src/presentation/PresentationFooter.test.tsx src/presentation/PresentationRoute.test.tsx src/presentation/presentation-target-status.test.ts src/presentation/usePresentationTargetStatus.test.tsx`
|
||||||
|
- Result: 4 test files passed, 63 tests passed.
|
||||||
|
- Typecheck:
|
||||||
|
- `pnpm --dir web typecheck`
|
||||||
|
- Result: all workspace typecheck projects passed.
|
||||||
|
- `git diff --check` passed.
|
||||||
|
|
||||||
|
## Review Fix Concerns
|
||||||
|
|
||||||
|
None beyond the pre-existing `OperatorChat.tsx` Scene 8 condition documented
|
||||||
|
above; Task 3 and unrelated presentation surfaces were not touched.
|
||||||
Reference in New Issue
Block a user