Problem
The fork's history and maintenance workflows make upstream integration, review, and regression isolation harder than necessary. This issue records the findings from the September 5 repository-history review; proposed remedies are in a separate comment.
1. Squashed upstream ancestry conflicts with the sync strategy
The initial public release explicitly squashed the inherited history. In the non-shallow local checkout, git merge-base origin/clanker origin/main returns no common ancestor.
Nevertheless, the fork-sync configuration schedules upstream integration through a shared workflow. The reviewed shared workflow runs git rebase and then force-pushes the shared fork branch on success, with no intervening build/test gate. It creates backups, but those do not validate compatibility or prevent disruption to open branches. The caller also follows the mutable @main workflow reference.
Without shared ancestry, ordinary rebase cannot identify the original fork delta cleanly. Existing issue #16 reports widespread add/add conflicts, consistent with this mismatch. This issue complements that incident with the underlying design problem; it does not establish that every subsequent sync failure has the same cause.
2. Maintenance changes have bundled unrelated, consequential behavior
PR #46, titled dependency-refresh stabilization, changed 84 files (2,877 insertions and 1,293 deletions), including substantial Windows sandbox token, desktop-access, and process-launch behavior alongside dependencies, CI, and test repairs. This is a reviewability and rollback concern, not a claim that those sandbox changes are incorrect. The aggregate change makes it harder to validate or revert one decision independently.
3. One character collision blocks unrelated lookups
Introduced in #30, CharacterCatalog::resolve returns all catalog collision errors before considering the requested name. One conflicting package therefore prevents resolution of otherwise unambiguous characters. The remaining avatar stack (#83/#82) illustrates the impact: lazy materialization can create a collision with a preexisting custom alias and subsequently break startup.
4. Routine CI depends on unavailable historical workflow artifacts
repo-checks.yml stages an npm package using artifacts from one pinned upstream Actions run. The baseline build-test job fails with no valid artifacts found to download. An ordinary PR gate thus depends on the continued availability of external workflow artifacts, independently of the PR's code.
5. The merge workflow did not enforce the intended wait for CI
During this session, #84 merged immediately after gh pr merge --auto --rebase, while CI was unfinished. The executing agent should have checked effective merge-gate behavior first. This is an observed process failure; the exact protection/ruleset configuration still needs inspection before attributing it to a particular setting.
Impact
These choices increase upstream-sync friction, weaken confidence in merge readiness, enlarge regression blast radius, and complicate diagnosis and rollback. The primary concern is the ancestry/sync mismatch; the other findings should be addressed in separate, reviewable implementation changes.
Problem
The fork's history and maintenance workflows make upstream integration, review, and regression isolation harder than necessary. This issue records the findings from the September 5 repository-history review; proposed remedies are in a separate comment.
1. Squashed upstream ancestry conflicts with the sync strategy
The initial public release explicitly squashed the inherited history. In the non-shallow local checkout,
git merge-base origin/clanker origin/mainreturns no common ancestor.Nevertheless, the fork-sync configuration schedules upstream integration through a shared workflow. The reviewed shared workflow runs
git rebaseand then force-pushes the shared fork branch on success, with no intervening build/test gate. It creates backups, but those do not validate compatibility or prevent disruption to open branches. The caller also follows the mutable@mainworkflow reference.Without shared ancestry, ordinary rebase cannot identify the original fork delta cleanly. Existing issue #16 reports widespread add/add conflicts, consistent with this mismatch. This issue complements that incident with the underlying design problem; it does not establish that every subsequent sync failure has the same cause.
2. Maintenance changes have bundled unrelated, consequential behavior
PR #46, titled dependency-refresh stabilization, changed 84 files (2,877 insertions and 1,293 deletions), including substantial Windows sandbox token, desktop-access, and process-launch behavior alongside dependencies, CI, and test repairs. This is a reviewability and rollback concern, not a claim that those sandbox changes are incorrect. The aggregate change makes it harder to validate or revert one decision independently.
3. One character collision blocks unrelated lookups
Introduced in #30, CharacterCatalog::resolve returns all catalog collision errors before considering the requested name. One conflicting package therefore prevents resolution of otherwise unambiguous characters. The remaining avatar stack (#83/#82) illustrates the impact: lazy materialization can create a collision with a preexisting custom alias and subsequently break startup.
4. Routine CI depends on unavailable historical workflow artifacts
repo-checks.yml stages an npm package using artifacts from one pinned upstream Actions run. The baseline build-test job fails with
no valid artifacts found to download. An ordinary PR gate thus depends on the continued availability of external workflow artifacts, independently of the PR's code.5. The merge workflow did not enforce the intended wait for CI
During this session, #84 merged immediately after
gh pr merge --auto --rebase, while CI was unfinished. The executing agent should have checked effective merge-gate behavior first. This is an observed process failure; the exact protection/ruleset configuration still needs inspection before attributing it to a particular setting.Impact
These choices increase upstream-sync friction, weaken confidence in merge readiness, enlarge regression blast radius, and complicate diagnosis and rollback. The primary concern is the ancestry/sync mismatch; the other findings should be addressed in separate, reviewable implementation changes.