diff --git a/.run/P34/flip/archive_after_flip.json b/.run/P34/flip/archive_after_flip.json new file mode 100644 index 000000000..9ed52cdf4 --- /dev/null +++ b/.run/P34/flip/archive_after_flip.json @@ -0,0 +1 @@ +{"private":true,"visibility":"private"} diff --git a/.run/P34/flip/curl_codes_after_flip.txt b/.run/P34/flip/curl_codes_after_flip.txt new file mode 100644 index 000000000..23af7844c --- /dev/null +++ b/.run/P34/flip/curl_codes_after_flip.txt @@ -0,0 +1,6 @@ +https://github.com/Druthulu/BFM-decomp -> 200 +https://raw.githubusercontent.com/Druthulu/BFM-decomp/main/docs/badges/fleet_instr.json -> 404 +https://github.com/Druthulu/BFM-decomp/actions/workflows/no-rom.yml/badge.svg -> 200 +https://github.com/Druthulu/xsig -> 200 +raw plain URL re-check -> 200 +shields endpoint -> 200, title 'matched (instructions): 100.0%' diff --git a/.run/P34/flip/repo_after_edit.json b/.run/P34/flip/repo_after_edit.json new file mode 100644 index 000000000..bd7f9b41f --- /dev/null +++ b/.run/P34/flip/repo_after_edit.json @@ -0,0 +1 @@ +{"description":"Matching decompilation of Brave Fencer Musashi (PS1, SLUS-00726): 218 binaries rebuild byte-identical from C","has_wiki":true,"homepage":"https://github.com/Druthulu/BFM-decomp/wiki","private":false,"topics":["brave-fencer-musashi","decompilation","mips","playstation","psx","psyq","reverse-engineering"]} diff --git a/.run/P34/flip/repo_after_flip.json b/.run/P34/flip/repo_after_flip.json new file mode 100644 index 000000000..4361012bb --- /dev/null +++ b/.run/P34/flip/repo_after_flip.json @@ -0,0 +1 @@ +{"description":"Brave Fencer Musashi decomp","has_wiki":false,"homepage":null,"private":false,"topics":[],"visibility":"public"} diff --git a/.run/P34/flip/repo_edit.log b/.run/P34/flip/repo_edit.log new file mode 100644 index 000000000..e69de29bb diff --git a/.run/P34/flip/ruleset_create.json b/.run/P34/flip/ruleset_create.json new file mode 100644 index 000000000..07c182eba --- /dev/null +++ b/.run/P34/flip/ruleset_create.json @@ -0,0 +1 @@ +{"id":22564862,"name":"protect-main","target":"branch","source_type":"Repository","source":"Druthulu/BFM-decomp","enforcement":"active","conditions":{"ref_name":{"exclude":[],"include":["~DEFAULT_BRANCH"]}},"rules":[{"type":"deletion"},{"type":"non_fast_forward"}],"node_id":"RRS_lACqUmVwb3NpdG9yec5LcgLhzgFYT_4","created_at":"2026-09-08T11:29:57.473-06:00","updated_at":"2026-09-08T11:29:57.494-06:00","bypass_actors":[],"current_user_can_bypass":"never","_links":{"self":{"href":"https://api.github.com/repos/Druthulu/BFM-decomp/rulesets/22564862"},"html":{"href":"https://github.com/Druthulu/BFM-decomp/rules/22564862"}}} \ No newline at end of file diff --git a/.run/P34/flip/ruleset_request.json b/.run/P34/flip/ruleset_request.json new file mode 100644 index 000000000..64de6c9ea --- /dev/null +++ b/.run/P34/flip/ruleset_request.json @@ -0,0 +1 @@ +{"name":"protect-main","target":"branch","enforcement":"active","conditions":{"ref_name":{"include":["~DEFAULT_BRANCH"],"exclude":[]}},"rules":[{"type":"deletion"},{"type":"non_fast_forward"}]} diff --git a/.run/P34/flip/rulesets_after.json b/.run/P34/flip/rulesets_after.json new file mode 100644 index 000000000..87dda6d35 --- /dev/null +++ b/.run/P34/flip/rulesets_after.json @@ -0,0 +1 @@ +{"enforcement":"active","id":22564862,"name":"protect-main","target":"branch"} diff --git a/.run/P34/probe/after_flip.log b/.run/P34/probe/after_flip.log new file mode 100644 index 000000000..3e5fc3cb1 --- /dev/null +++ b/.run/P34/probe/after_flip.log @@ -0,0 +1,36 @@ +probe: Druthulu/BFM-decomp — 33 old hashes (every 134th of 4031 + pruned + tag tip); fetch check in /home/musashi/bfm-decomp/.run/public_rewrite/probe_scratch.git + gone 296ff5551ba71269972e708031b52e9cf39bc782 + gone bf022dd4822e7a304932e7f070cb40bc2c18c652 + gone 2eb628650fb622cc312cb176536c4e436de485ba + gone 4d3147f73dbea38e49a51cef1e3598ffedf2347a + gone 78444d1ad17c09d158b75c1a2ebfee0233f44121 + gone d952a74027948f7972f461351bd012a60af23b1b + gone c64ace261f7c14c6302b8c7eb73ccce976ea1c70 + gone 848ce75f00c1618557cf60984faf645bb24b00be + gone b826d6fd2bbcc7e7469ec2011fa99977347bf320 + gone c87a673262cc64754e6112ef2fc83c6ea5dd6d19 + gone a878a1fe84633a6e745f8b404407f5f79ac89205 + gone efd12107f8841f7464f6fd7d15fbca9e276aff4d + gone 5f24e5c17a5a0196aefc73bca3b66166ab4d9b52 + gone f87d238ea7d4128519210b43489d4343077823b9 + gone 7cae37d537415a8e361d784c981e3af9044f0d83 + gone c1f41dea0081b5a922565066971f4b774c5f7a59 + gone 646d01bed65833877bb953a3ce5f24521a0ccfd5 + gone be0fb2bee0462686fa8ce5563746e33f9511e2cf + gone 8c465e0e91be0f06b452723c954317433e3e0915 + gone 1bce1134ae8752fdab5d6986b38d57233ed89c6e + gone e26c6a01cb5bf4209a20d9b448541d245ccb5fb9 + gone e7e4e65bee8e73eeee900678cacea8bf1afbb540 + gone d0cfb7630557f8a4312a085f33e3935ff12bf37d + gone ceba649f9c35433922164d3181b6f066e209a7d9 + gone 34dc0c2e73f31c645fff8149c68dbe5b1cc51f16 + gone 7d477483b82495bd09dee15e244a278240d46546 + gone 7e40cf3b513300a523fd6d194ae25168ed2b4576 + gone f5ecfdc21d5d07c2628fb1c150b356ff43b279fe + gone ad03b5364866cea95c7ae2898d99d0fc77455e5c + gone f4e77ef54d912e22556b1272e31aa5781e14c085 + gone 8bfe3e3ac80c15744c262c6d796f05a57e6310d5 + gone 4d5b6340cfb19bf729e8d8ade3b82bfed1e3ad91 + gone 89eefe11933eb78b2b3c1f210d2c6131fa7e4421 + control: current main eb342dc9fe0935b8c9743f9245b08dd16f875b67 resolves (OK) +probe: PASS — every sampled old hash is gone from Druthulu/BFM-decomp diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index 65b110267..a74ee4d94 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -41,7 +41,7 @@ bundle and dictionary are deleted at C11) and a public fresh-clone re-proof (B3' ## Tasks (strict order; one commit per task after this file is updated; harness task list = the same rows, R28 — 10 at gate 1) - [x] **0a** Open the phase: this file, R84–R95 into DIGEST §3 (+ one §0 line), the `.run/P34/` evidence allowlist, TaskCreate ×10, `doc_links --strict` 0/0, commit — xHigh (Claude) - [x] **0** The probe once more: `tools/public_rewrite/probe_github.sh | tee .run/P34/probe/pre_flip.log` → PASS, control OK, no WARNING — Low (Claude) -- [ ] **1** C10 — the flip (Drew, Max) + post-flip checks, metadata, ruleset, Actions green on the public repo (Claude, Low) +- [x] **1** C10 — the flip (Drew, Max) + post-flip checks, metadata, ruleset, Actions green on the public repo (Claude, Low) - [ ] **2** E1 — decomp.me: scratch → 100% → preset-request issue → manual search (Drew, xHigh); recorded in SETUP §6.5 + ledger row 14 (Claude) - [ ] **3** E2 — the Archipelago issue (Drew, xHigh); URL recorded; §5 reply handling pending unless a reply arrives (Claude) - [ ] **4** D3 — decomp.dev registration + frogress slug/key/push (Drew, xHigh); verified by curl (Claude) → **P6 rules check after this task** @@ -81,7 +81,25 @@ output) · `.run/P34/c11/` (the prune listing with sizes, `git worktree list`, t Same 33 hashes as the S91 run (`.run/P33.5/probe_github_s91.log`). **The gate is open at the moment of the flip.** Log committed (allowlisted `.run/P34/probe/*.log`). -## 🛑 SESSION CHECKPOINT — PHASE 34 OPEN (S93, 2026-09-08): tasks 0a, 0 ✓; NEXT = task 1 (the flip — DREW's action, then Claude's checks) +### 2026-09-08 — Task 1 — C10: the flip + the post-flip checks, metadata, ruleset (Drew: Max decision; Claude: checks; S93) +- **Drew flipped the repository PUBLIC** (Settings → Danger Zone → Change visibility; reported "flipped" 2026-09-08 ~11:25 MDT). +- Checks (`.run/P34/flip/`, `.run/P34/probe/after_flip.log`): `gh api repos/Druthulu/BFM-decomp` → `"private":false,"visibility":"public"`; + `Druthulu/BFM-decomp-archive` → `"private":true` (still private); **`probe_github.sh --after-flip` → PASS, 33 `gone` of 33, 0 ALIVE + (incl. the unauthenticated `/commit/<7>` pages), control `eb342dc9f` OK, exit 0.** Unauthenticated URLs (404/404/404/200 while + private): repo page **200**, `no-rom` badge.svg **200**, xsig 200; the raw badge JSON read **404 on the first try** — the Fastly + negative cache from the private era (`cache-control: max-age=300`, `x-cache: HIT`), NOT the repository: the same URL with a cache-buster + → 200, the unauthenticated API contents endpoint → 200, the shields endpoint → 200 rendering `matched (instructions): 100.0%`, and the + plain URL re-checked after the cache turned over → **200** (R40: the instrument was exonerated before the subject was blamed). +- Writes on Drew's word (decision 2/4): `gh repo edit … --enable-wiki --description "Matching decompilation of Brave Fencer Musashi (PS1, + SLUS-00726): 218 binaries rebuild byte-identical from C" --homepage https://github.com/Druthulu/BFM-decomp/wiki` + 7 topics → verified + `has_wiki:true`, topics `[brave-fencer-musashi, decompilation, mips, playstation, psx, psyq, reverse-engineering]`. Ruleset + **`protect-main` id 22564862** (target branch `~DEFAULT_BRANCH`, rules `deletion` + `non_fast_forward`, enforcement active, + `bypass_actors: []`, `current_user_can_bypass: never`) — a future history rewrite needs the ruleset edited/deleted FIRST; a + fast-forward push and a tag push are unaffected. +- **Open until Drew pushes:** both workflows green on the PUBLIC repo (`gh run list --limit 2` after the push of commits 0a / 0 / 1) — + recorded as an addendum commit to this task, never claimed unseen (P9). + +## 🛑 SESSION CHECKPOINT — PHASE 34 OPEN (S93, 2026-09-08): tasks 0a, 0, 1 ✓ (task 1's Actions-green line pending Drew's push); NEXT = the Actions check, then task 2 (E1 decomp.me — DREW) ### 0. How to use this block A fresh session reads CLAUDE.md's load order, replays THIS block verbatim, and resumes at the first unchecked task above. Everything