Skip to content

Bundle upstream cherries: statusline spacing + AlgorithmTab dead docs (#91 partial, #83 verified)#137

Merged
virtualian merged 2 commits intomainfrom
fix/91-partial-83-upstream-cherries-voice-gate
Apr 15, 2026
Merged

Bundle upstream cherries: statusline spacing + AlgorithmTab dead docs (#91 partial, #83 verified)#137
virtualian merged 2 commits intomainfrom
fix/91-partial-83-upstream-cherries-voice-gate

Conversation

@virtualian
Copy link
Copy Markdown
Owner

Summary

Bundle cherry-pick pass from the 2026-03-18 upstream scan in #91. Scope was 5 sub-items; verification revealed 3 were already in-tree in this fork and 2 required real fixes. Partial close of #91 (the mechanical low-risk subset), no change to #112's VoiceServer removal surface.

Commits

# Commit Sub-issue Upstream PR
1 620165e #91 — Statusline MEMORY row spacing danielmiessler/Personal_AI_Infrastructure#910, #900
2 6b36870 #91 — Remove dead AlgorithmTab.hook.ts docs danielmiessler/Personal_AI_Infrastructure#968

What changed

620165e — Statusline MEMORY icon spacing (upstream #910/#900, #91)

.claude/statusline-full.sh rendered the MEMORY row as 📁478 ✦3000 ⊕12 ◇7 because the icon glyphs were immediately followed by \${RESET}\${SLATE_300}\${count} with no space. Added a single space after each icon (📁, ✦, ⊕, ◇) at 10 print sites across the nano/micro/mini/normal modes. Matches the already-fixed layout in Releases/v4.0.3+/.claude/statusline-command.sh. bash -n clean.

6b36870 — AlgorithmTab.hook.ts dead doc refs (upstream #968, #91)

AlgorithmTab.hook.ts has never existed in this tree but was documented in 5 places across 2 files, mirrored in release and runtime:

  • Releases/v4.0.3+/.claude/PAI/THEHOOKSYSTEM.md — Stop-hooks JSON example, "What They Do" subsection, Quick Reference card, "HOOKS BY EVENT (22→21)" and "STOP (5→4)" counts
  • Releases/v4.0.3+/.claude/hooks/README.md — ASCII lifecycle diagram, Stop Hooks registry table, footer hook count
  • ~/.pai/PAI/THEHOOKSYSTEM.md + ~/.pai/hooks/README.md — runtime mirrors of the above

No code change, no behavior change — these are dead docs only. Adjacent VoiceCompletion.hook.ts entries are intentionally untouched: they belong to #112's removal PR.

The live AlgorithmTabPhase type in hooks/lib/tab-constants.ts / tab-setter.ts / PRDSync.hook.ts is a separate thing (a type alias for Algorithm phase tab states) and is deliberately NOT removed.

#91 sub-items: verified already fixed in-tree

These three were flagged in the original scope but verification proved no code change was needed. They remain listed as "partial" on #91 because the bundle-tracker records them — I'm only documenting the verification here.

Sub-item Upstream Status Evidence
RatingCapture safeSlice() UTF-16 #882 Already fixed PR #66 (commit 1cb8484) introduced safeSlice() at RatingCapture.hook.ts:494-501. All string truncations in the file already flow through it. Remaining .slice() calls operate on arrays or numeric-prefix substrings — none can split a surrogate pair.
notifications.voice.enabled gate n/a (local #83) Already fixed PR #85 (commit 591473d) "fix: respect notifications.voice.enabled setting in voice server and hook (#83)". isVoiceEnabled() gate lives at VoiceCompletion.hook.ts:36-48 with early-exit at lines 61-64. Verified live: settings.json has notifications.voice.enabled: false, gate returns false, hook exits silently.
CONTEXT_ROUTING.md dead refs #883 Not applicable Upstream reorganized USER/ to put projects under TELOS/PROJECTS.md. This fork kept USER/PROJECTS/README.md as its own directory. All 19 paths in CONTEXT_ROUTING.md resolve in both release and runtime trees. The {PRINCIPAL.NAME} template variable never appeared in this file (git log confirms). Following the upstream fix literally would have created a dead ref.

#91 remaining follow-ups (NOT in this PR)

#83 disposition

Left OPEN on purpose. The hook-handler side is already fixed (commit 591473d), and #112's removal plan explicitly schedules closing #83 as its own verification step when the entire voice stack is ripped out. Closing it now would steal that closure from #112. If #112 is abandoned, #83 can be closed directly with a pointer to 591473d.

Test plan

  • bash -n .claude/statusline-full.sh — syntax clean
  • grep -E '(📁|✦|⊕|◇)\$\{RESET\}\$\{SLATE_300\}' .claude/statusline-full.sh returns zero hits (fix complete)
  • grep AlgorithmTab Releases/v4.0.3+/.claude/PAI/THEHOOKSYSTEM.md Releases/v4.0.3+/.claude/hooks/README.md ~/.pai/PAI/THEHOOKSYSTEM.md ~/.pai/hooks/README.md returns zero hits (doc cleanup complete in both release + runtime mirrors)
  • grep AlgorithmTabPhase Releases/v4.0.3+/.claude/hooks/ still matches tab-constants.ts / tab-setter.ts / PRDSync.hook.ts — the live type is preserved, only the docs-for-a-nonexistent-file went away
  • Stop-hooks JSON example in THEHOOKSYSTEM.md still valid JSON (4 entries, correct trailing comma on DocIntegrity)
  • ASCII lifecycle diagram in hooks/README.md shows └──► DocIntegrity as new last entry
  • Visual check in live terminal: statusline MEMORY row renders with visible space between icons and counts

Add a space after 📁, ✦, ⊕, and ◇ in `.claude/statusline-full.sh` so
the MEMORY row renders as `📁 478 ✦ 3000` instead of `📁478 ✦3000`.
Matches upstream PRs danielmiessler/Personal_AI_Infrastructure#910 and
#900 and the already-fixed layout in Releases/v4.0.3+/statusline-command.sh.

Partial close of #91 (2026-03-18 upstream scan cherry-picks).
AlgorithmTab.hook.ts was documented across THEHOOKSYSTEM.md and
hooks/README.md but the file itself has never existed in this tree.
Remove all references (Stop-hooks JSON example, "What They Do"
subsection, ASCII lifecycle diagram, Stop Hooks registry table,
Quick Reference card, hook counts 22→21 and STOP 5→4).

No code change, no behavior change — dead docs only. The adjacent
VoiceCompletion.hook.ts entries are intentionally left in place:
they are a separate removal tracked in #112.

Matches upstream PR danielmiessler/Personal_AI_Infrastructure#968.
Partial close of #91 (2026-03-18 upstream scan cherry-picks).
@virtualian virtualian merged commit 49e33e4 into main Apr 15, 2026
1 check passed
@virtualian virtualian deleted the fix/91-partial-83-upstream-cherries-voice-gate branch April 15, 2026 20:31
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.

1 participant