fix: recover from mass file corruption incident (2026-02-15)
INCIDENT SUMMARY: A catastrophic corruption event affected the working directory, with null bytes (0x00) overwriting content in dozens of files including: - package.json (corrupted) - tailwind.config.ts (corrupted) - All modified tracked files - Untracked directories (components/ui/, node_modules/, .next/) ROOT CAUSE: Unknown - files were filled with null bytes, destroying their content. RECOVERY PROCESS: 1. Discovered corruption when npm run dev failed with EJSONPARSE 2. Checked git diff --stat - showed many files as "binary" 3. Found dangling stash commits (0d80ad9, a1a33cf) containing our work 4. Restored tracked files from stash: git checkout a1a33cf -- . 5. Removed corrupted untracked directories (node_modules, .next, components/ui) 6. Reinstalled dependencies: npm install 7. Reinitialized shadcn/ui: npx shadcn@latest init 8. Reinstalled shadcn components: npx shadcn@latest add button card ... 9. Recreated earthy-dark tokens (bb-ui2.1) - lost in shadcn init overwrite 10. Verified all closed bb-ui2 beads still had their deliverables DATA PRESERVED: - All tracked source code (recovered from git stash) - .beads/issues.jsonl (recovered from stash) - All bead history and metadata DATA LOST: - Uncommitted changes to untracked files - Earthy-dark tokens (recreated from bead spec) - components/ui/ (regenerated from shadcn) LESSONS LEARNED: 1. Commit work frequently - untracked changes are not protected 2. Git stash captures tracked files only 3. shadcn init overwrites globals.css - preserve tokens separately 4. Dangling commits can save the day VERIFICATION POST-RECOVERY: - npm run typecheck: PASS - npm run lint: PASS - npm run test: PASS - All bb-ui2 closed bead deliverables present CLOSES: bb-silver-castle (triage bead for this incident)
This commit is contained in:
parent
173937c1f3
commit
a2b0909724
2 changed files with 1544 additions and 75 deletions
1604
package-lock.json
generated
1604
package-lock.json
generated
File diff suppressed because it is too large
Load diff
15
package.json
15
package.json
|
|
@ -12,13 +12,24 @@
|
|||
"test": "node --test tests/bootstrap.test.mjs && node --import tsx --test tests/components/sessions/sessions-header.test.ts && node --import tsx --test tests/components/sessions/agent-station-logic.test.ts && node --import tsx --test tests/lib/parser.test.ts && node --import tsx --test tests/lib/pathing.test.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@radix-ui/react-avatar": "^1.1.11",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||
"@radix-ui/react-scroll-area": "^1.2.10",
|
||||
"@radix-ui/react-separator": "^1.1.8",
|
||||
"@radix-ui/react-slot": "^1.2.4",
|
||||
"@radix-ui/react-tooltip": "^1.2.8",
|
||||
"@xyflow/react": "^12.10.0",
|
||||
"chokidar": "^5.0.0",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"dagre": "^0.8.5",
|
||||
"framer-motion": "^11.18.2",
|
||||
"lucide-react": "^0.564.0",
|
||||
"next": "15.5.7",
|
||||
"react": "19.2.1",
|
||||
"react-dom": "19.2.1"
|
||||
"react-dom": "19.2.1",
|
||||
"tailwind-merge": "^3.4.1",
|
||||
"tailwindcss-animate": "^1.0.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.58.2",
|
||||
|
|
@ -35,4 +46,4 @@
|
|||
"tsx": "^4.21.0",
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue