Skip to content

fix: bootstrap manifest DEFAULT_LOAD corruption + UX gaps (closes #150, #146)#152

Merged
stackbilt-admin merged 2 commits into
mainfrom
fix/bootstrap-manifest-ux
May 19, 2026
Merged

fix: bootstrap manifest DEFAULT_LOAD corruption + UX gaps (closes #150, #146)#152
stackbilt-admin merged 2 commits into
mainfrom
fix/bootstrap-manifest-ux

Conversation

@stackbilt-admin
Copy link
Copy Markdown
Member

Summary

Changes

Fix #150 — manifest DEFAULT_LOAD corruption (bootstrap.ts)

  • Added DEFAULT_LOAD_MODULES = new Set(['core.adf', 'state.adf']) — orphans in this set go to DEFAULT_LOAD, not ON_DEMAND
  • New registerModulesInDefaultLoad helper uses parseAdf/formatAdf structured round-trip to inject entries into the correct section
  • Post-write self-check: if core.adf exists but manifest still parses with 0 DEFAULT_LOAD entries, emits a clear repair command

Fix #146 — bootstrap UX (bootstrap.ts)

  • Git preflight: isGitRepo() checked once at startup; prints git init && git add -A && git commit remediation when missing; hook next-steps suppressed when no git repo
  • Install error bucketing: new classifyInstallError() covers frozen-lockfile (--no-frozen-lockfile), permissions (EPERM/EACCES, WSL/NTFS --force hint), and network (ENOTFOUND/ETIMEDOUT, retry hint)
  • Partial completion banner: when any phase fails, prints ⚠ Bootstrap partially complete — N step(s) failed: with per-step error + recovery commands

Tests

  • New test: bootstrap with non-canonical manifest registers core.adf/state.adf in DEFAULT_LOAD
  • New test: frozen-lockfile install error sets status to partial and warns with --no-frozen-lockfile
  • 441/441 tests pass

🤖 Generated with Claude Code

Kurt Overmier and others added 2 commits May 19, 2026 05:35
, #146)

#150 — manifest parses as 0 default-load:
- core.adf and state.adf now register into DEFAULT_LOAD instead of ON_DEMAND
  when bootstrap auto-registers orphans (--yes mode)
- New registerModulesInDefaultLoad helper uses parseAdf/formatAdf round-trip
- Post-write self-check warns when core.adf exists but DEFAULT_LOAD is empty

#146 — bootstrap UX friction:
- Git preflight emits actionable remediation command when not in a git repo
- Install errors bucketed: frozen-lockfile / permissions / network each get a
  specific retry hint
- Partial completion banner printed when any phase fails, with recovery steps
- Hook next-steps gated on git repo presence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ner truncation

- classifyInstallError: fix frozen[-. ]lockfile regex (escaped dot), accept pm param
  for network hint instead of msg.includes('pnpm')
- registerModulesInDefaultLoad: set decoration '📦' on newly created DEFAULT_LOAD section
- Post-write self-check: replace console.warn with console.log, gate on format=text
- Partial banner: truncate error detail to first line, max 120 chars
- Test: add missing blank line between new test cases

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@stackbilt-admin stackbilt-admin merged commit 8d0743e into main May 19, 2026
1 of 3 checks passed
@stackbilt-admin stackbilt-admin deleted the fix/bootstrap-manifest-ux branch May 19, 2026 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant