mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 20:34:02 +01:00
Three self-contained apps move to their own public repos with full history (8, 14 and 30 commits, each matching the monorepo count): github.com/kuhyx/reverse-survivors github.com/kuhyx/kcd2-dice-solver (cloned to ~/kcd2-dice-solver) github.com/kuhyx/focus-owner Each gained a CI workflow. Only reverse_survivors had one here; the other two were never gated by anything, which is part of why they no longer belong in a repo whose CI is shared. What stayed: setup_kcd2_dice_solver.sh, which deploys the solver rather than being part of it. It now builds from ~/kcd2-dice-solver, and the post-commit hook it generates drops its `git diff -- kcd2_dice_solver/` filter -- in a standalone repo every commit is solver code, so the old filter could never match again. focus_owner's two references to python_pkg.focus_policy now name the phone-focus-mode repo, where that generator is headed. Running the live kcd2 unit -- rather than reading it -- found three real breakages that no amount of grepping would have: pnpm ignoring the package.json "pnpm" field, pnpm refusing to purge node_modules without a TTY, and the Docker container still bind-mounting the deleted monorepo path. All three are fixed; the unit exits 0 and https://dice.kuhy.duckdns.org/ serves the freshly built bundle. Depth violations 417 -> 303. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PJrqKERAo5QUeEHWS5Asgp
57 lines
4.1 KiB
JSON
57 lines
4.1 KiB
JSON
{
|
|
"intent": "Extract reverse_survivors, kcd2_dice_solver and focus_owner into their own public GitHub repositories with full history, and repoint every reference the monorepo kept - including the live kcd2 systemd unit.",
|
|
"scope": [
|
|
"reverse_survivors/ (44 files, 8 commits) -> github.com/kuhyx/reverse-survivors",
|
|
"kcd2_dice_solver/ (73 files, 14 commits) -> github.com/kuhyx/kcd2-dice-solver, cloned to ~/kcd2-dice-solver",
|
|
"focus_owner/ (72 files, 30 commits) -> github.com/kuhyx/focus-owner",
|
|
".github/workflows/reverse-survivors-ci.yml removed; each new repo carries its own CI",
|
|
"setup_kcd2_dice_solver.sh + lib/kcd2_autorebuild.sh repointed; the deploy script stays here",
|
|
"Non-goal: phone_focus_mode and the four system subsystems, which are separate steps"
|
|
],
|
|
"changes": [
|
|
"Each unit extracted with git filter-repo --path-rename <dir>/: so it owns its repository root, preserving every commit that touched it.",
|
|
"Added a CI workflow to each: npm for reverse-survivors, pnpm for kcd2-dice-solver, flutter for focus-owner. The latter two had no CI in the monorepo at all.",
|
|
"focus_owner's two references to python_pkg.focus_policy now name the phone-focus-mode repo, where the generator is going. Regeneration of assets/policy.json stays manual and says why.",
|
|
"setup_kcd2_dice_solver.sh now builds from ${HOME}/kcd2-dice-solver instead of ${HOME}/testsAndMisc/kcd2_dice_solver, and its generated post-commit hook drops the `git diff -- kcd2_dice_solver/` path filter, which could never match again once every commit in that repo is solver code.",
|
|
"Repointed the live kcd2-dice-build.service user unit and reloaded systemd.",
|
|
"Added pnpm-workspace.yaml to the solver repo approving esbuild's build script - found by running the unit, not by reading it."
|
|
],
|
|
"verification": [
|
|
{
|
|
"command": "npm ci && npm run check && npm run build (reverse-survivors, standalone clone)",
|
|
"result": "pass",
|
|
"evidence": "100% statements/branches/functions/lines; vite build produced dist/ in 74ms."
|
|
},
|
|
{
|
|
"command": "pnpm install && pnpm run lint && pnpm run test && pnpm run build (kcd2, standalone clone)",
|
|
"result": "pass",
|
|
"evidence": "tsc --noEmit and eslint clean; 288 tests in 24 files passed; vite build succeeded."
|
|
},
|
|
{
|
|
"command": "flutter pub get && flutter analyze --fatal-infos && flutter test (focus-owner, standalone clone)",
|
|
"result": "pass",
|
|
"evidence": "No issues found; 94 tests passed. Re-run after the two comment edits, same result."
|
|
},
|
|
{
|
|
"command": "systemctl --user start kcd2-dice-build.service",
|
|
"result": "fail then pass",
|
|
"evidence": "First run exited 1: ERR_PNPM_IGNORED_BUILDS for esbuild@0.25.12. package.json carried pnpm.onlyBuiltDependencies but pnpm 10 reads the approval from pnpm-workspace.yaml, which was never tracked. Adding it fixed the install. This is exactly the failure that reading the script could not have found."
|
|
},
|
|
{
|
|
"command": "gh api repos/kuhyx/<name>",
|
|
"result": "pass",
|
|
"evidence": "All three repos public on default branch main; reverse-survivors CI queued on first push."
|
|
}
|
|
],
|
|
"risks": [
|
|
"The kcd2 auto-rebuild git hook is installed into the solver repo's .git/hooks by setup_kcd2_dice_solver.sh; a fresh clone of that repo will not have it until the setup script is re-run.",
|
|
"focus_owner's policy.json is now a committed artifact whose generator lives in a different repo. Drift is possible if config.sh changes and nobody regenerates; the pubspec comment records the exact command.",
|
|
"The extracted repos were verified in a scratch clone, not in the working copies at ~/; only kcd2-dice-solver was cloned locally because a systemd unit needs it."
|
|
],
|
|
"rollback": [
|
|
"git revert the removal commit to restore all three trees and the reverse-survivors workflow.",
|
|
"Repoint kcd2-dice-build.service back to ${HOME}/testsAndMisc/kcd2_dice_solver and systemctl --user daemon-reload.",
|
|
"The new GitHub repos can be left in place; they do not affect the monorepo once the trees are restored."
|
|
]
|
|
}
|