Skip to content

Show Wrap-up guidance in the VS Code status bar and tooltip #2

Description

@jsmestad

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

  1. When the availability payload includes active wrap-up guidance, the status bar text shows a Wrap-up indicator and remaining minutes.
  2. The status bar tooltip includes wrap-up state, deadline, and the active profile (normal or wrap_up) in plain language.
  3. When wrap-up is not active, no Wrap-up indicator is shown and existing status behavior remains unchanged.
  4. Realtime subscription updates and polling fallback both refresh Wrap-up UI state correctly within one refresh cycle.
  5. 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:

  1. Extend SDK availability usage in the extension to read wrap-up fields.
    • Files: src/extension.ts, src/status-bar.ts
  2. Add status bar and tooltip rendering rules for wrap-up state.
    • Files: src/status-bar.ts
  3. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions