Skip to content

fix: correct statusline context calculation and track hooks in manifest (#769)#845

Closed
0xLeathery wants to merge 8 commits intogsd-build:mainfrom
0xLeathery:fix/769-statusline-context-calculation
Closed

fix: correct statusline context calculation and track hooks in manifest (#769)#845
0xLeathery wants to merge 8 commits intogsd-build:mainfrom
0xLeathery:fix/769-statusline-context-calculation

Conversation

@0xLeathery
Copy link
Contributor

What

Fixes the statusline context bar calculation to reflect Claude Code's actual autocompact buffer, and adds GSD hook files to the install manifest so local edits survive /gsd:update.

Why

The old 80% scaling factor was arbitrary and produced misleading percentages — at 50% real usage the bar showed ~62%, and the orange/red thresholds fired too early. Claude Code actually reserves 16.5% (33k of 200k tokens) as an autocompact buffer, so the usable window is 83.5%. Separately, gsd-statusline.js and the other hook files were absent from gsd-file-manifest.json, causing them to be silently overwritten on every update without backing up local modifications.

Testing

  • Tested on macOS
  • Tested on Windows
  • Tested on Linux

Checklist

  • Follows GSD style (no enterprise patterns, no filler)
  • Updates CHANGELOG.md for user-facing changes
  • No unnecessary dependencies added
  • Works on Windows (backslash paths tested)

Breaking Changes

None

Closes #769

Ethan Hurst added 8 commits February 28, 2026 20:28
Command shipped in a92512a but was missing from all documentation.
Added to help.md (full reference + common workflows), README.md
command table, and USER-GUIDE.md command reference.
Add centralized path resolution layer (paths.cjs) that enables
milestone-scoped directories for parallel milestone work. All 11 lib
files refactored to use resolvePlanningPaths() instead of hardcoded
.planning/ paths.

Key changes:
- New paths.cjs: resolvePlanningPaths(cwd, milestoneOverride) resolves
  abs/rel paths based on ACTIVE_MILESTONE file or --milestone CLI flag
- --milestone <name> CLI flag parsed in gsd-tools.cjs
- New commands: milestone create/switch/list/status
- All init commands output milestone, is_multi_milestone, planning_base
- Legacy mode (no ACTIVE_MILESTONE) returns identical paths to before
- Auto-migration: first milestone create copies existing global state
- 25 new tests for paths and milestone commands (457 total, 0 failures)
Replace hardcoded .planning/ paths in bash commands and commit
file lists with init JSON variables ({state_path}, {roadmap_path},
{planning_base}/...). Workflows without init calls gain appropriate
init calls. Global paths (PROJECT.md, codebase/) left unchanged.
…tusline, and docs (gsd-build#291)

Phase 5: polish for concurrent milestone execution.
- Milestone-scoped commit prefixes in execute-plan.md (v2.0/08-02)
- cmdMilestoneSwitch warns about in-progress work before switching
- /gsd:switch-milestone workflow and command
- Statusline shows active milestone in cyan [v2.0]
- new-milestone.md calls milestone create for multi-milestone mode
- Help and README updated with switch-milestone and concurrent docs
…itch-warning tests (gsd-build#291)

- USER-GUIDE: add /gsd:switch-milestone, concurrent milestones section,
  multi-milestone directory layout
- CHANGELOG: add [Unreleased] entry for concurrent milestone execution
- planner-subagent-prompt.md: replace hardcoded .planning/ paths with
  milestone-aware template variables
- 4 new tests: switch in-progress warning, idle switch, same-milestone
  switch, and auto-migration on first milestone create (461 total)
…ration (gsd-build#99)

Add structured bug reporting lifecycle: report → triage → investigate → fix → resolve.

- Skill file, workflow, and bug-report template
- CLI commands: bug list/update/resolve, init bugs, scaffold bugs
- Severity inference from keywords (critical/high/medium/low)
- Diagnostic log capture (git state, error output, log files)
- Optional GitHub issue creation via gh CLI
- 13 new tests across 4 test suites
- Registered in help, README, USER-GUIDE, CHANGELOG
- STATE.md and progress workflow track active bugs
…ion (gsd-build#210)

Add fourth model profile (adaptive) that auto-selects models per-plan
based on complexity scoring. Includes medium tier alignment with balanced
profile, keyword regex precision fixes, enriched plan context (type,
depends_on), usage logging, verifier adaptive resolution, and additional
scoring signals (TDD, dependencies, test files). 528 tests passing.
…st (gsd-build#769)

- Replace 80% scaling with 16.5% autocompact buffer subtraction so
  displayed percentage reflects when compaction is actually imminent
- Update color thresholds to 50/65/80 (green/yellow/orange/red)
- Switch display to toFixed(2) so small context changes are visible
- Add gsd-statusline.js, gsd-check-update.js, gsd-context-monitor.js
  to writeManifest() so local edits are backed up before /gsd:update
Copy link
Collaborator

@glittercowboy glittercowboy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: Split Required

The statusline fix is valid — using Claude Code's actual 16.5% autocompact buffer instead of a hardcoded 80% ceiling, plus tracking hooks in the manifest. Both are good changes.

However, this PR is 3,670 additions across 66 files, and the actual fix is a small fraction of that. The bulk is shared with #850 and #852:

  • Kimi CLI support
  • Adaptive model profiles
  • Bug reporting system
  • Switch-milestone command
  • Opus model resolution fix

These three PRs (#850, #852, #845) share ~95% of the same diff and will conflict massively with each other. Only one can merge cleanly.

Requested action: Please extract the statusline + hooks manifest fix into a standalone PR (just the gsd-statusline.js changes, manifest additions, and updated thresholds). Then consolidate the shared features into a single feature PR.

@0xLeathery
Copy link
Contributor Author

Superseded by #876 (statusline fix only) + #875 (consolidated features). The original PR bundled 9 shared feature commits inflating it to ~3,670 additions. The replacement PRs are focused and reviewable.

@0xLeathery 0xLeathery closed this Mar 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gsd-statusline.js: context calculation incorrect for Claude Code's actual context window

2 participants