What
When HeadsDown detects end-of-day time pressure, the VS Code extension should visibly show that Wrap-up is active and how much time remains. Users should be able to understand current pacing guidance without opening external tools.
Why
If Wrap-up is active but invisible, users and agents will miss the behavior change and trust drops. Clear visibility makes the feature understandable, reduces surprise, and reinforces completion-before-leaving behavior.
Acceptance Criteria
- When the availability payload includes active wrap-up guidance, the status bar text shows a Wrap-up indicator and remaining minutes.
- The status bar tooltip includes wrap-up state, deadline, and the active profile (
normal or wrap_up) in plain language.
- When wrap-up is not active, no Wrap-up indicator is shown and existing status behavior remains unchanged.
- Realtime subscription updates and polling fallback both refresh Wrap-up UI state correctly within one refresh cycle.
- Unit tests cover active, inactive, and transition states for status bar rendering.
Developer Notes
Approach: Extend the extension state model to carry wrapUpGuidance from SDK availability responses, then render it in StatusBarManager without changing existing mode semantics.
Steps:
- Extend SDK availability usage in the extension to read wrap-up fields.
- Files:
src/extension.ts, src/status-bar.ts
- Add status bar and tooltip rendering rules for wrap-up state.
- Add test coverage for rendering logic and state transitions.
- Files:
test/* (status bar related tests)
Testing:
- Simulate availability responses with wrap-up active and inactive.
- Verify output text and tooltip content for each mode.
- Verify behavior under polling and subscription-driven refresh.
What
When HeadsDown detects end-of-day time pressure, the VS Code extension should visibly show that Wrap-up is active and how much time remains. Users should be able to understand current pacing guidance without opening external tools.
Why
If Wrap-up is active but invisible, users and agents will miss the behavior change and trust drops. Clear visibility makes the feature understandable, reduces surprise, and reinforces completion-before-leaving behavior.
Acceptance Criteria
normalorwrap_up) in plain language.Developer Notes
Approach: Extend the extension state model to carry
wrapUpGuidancefrom SDK availability responses, then render it inStatusBarManagerwithout changing existing mode semantics.Steps:
src/extension.ts,src/status-bar.tssrc/status-bar.tstest/*(status bar related tests)Testing: