|
| 1 | +--- |
| 2 | +name: sync-thesuperhackers-upstream |
| 3 | +description: Sync the repository with TheSuperHackers upstream by creating a dated sync branch, merging thesuperhackers/main, resolving conflicts carefully, then committing and pushing the result |
| 4 | +argument-hint: Optional extra sync focus areas or constraints (for example: "prioritize audio-related conflicts" or "document every build-system conflict") |
| 5 | +agent: Bender |
| 6 | +--- |
| 7 | + |
| 8 | +# Sync TheSuperHackers Upstream |
| 9 | + |
| 10 | +Perform a full upstream sync from the `thesuperhackers` remote into this repository while preserving the working cross-platform nature of `GeneralsX`. |
| 11 | + |
| 12 | +## Briefing |
| 13 | + |
| 14 | +`TheSuperHackers` and `GeneralsX` have different goals and this must drive every merge decision: |
| 15 | + |
| 16 | +- `TheSuperHackers` focuses on bug fixes, stability, optimizations, and merging the `Generals` and `GeneralsMD` codebases while preserving compatibility with the original Windows binaries. |
| 17 | +- `GeneralsX` focuses on making the game truly cross-platform with a modern stack based on SDL3 + DXVK + OpenAL + FFmpeg, without prioritizing original binary compatibility. |
| 18 | + |
| 19 | +The repository is significantly behind upstream `TheSuperHackers`. The purpose of this sync is to import useful upstream improvements without regressing or dismantling the already functional cross-platform architecture in `GeneralsX`. |
| 20 | + |
| 21 | +## Required Workflow |
| 22 | + |
| 23 | +1. Determine the current local date and create a branch named exactly `thesuperhackers-sync-MM-DD-YYYY`. |
| 24 | +2. Verify whether the remote `thesuperhackers` exists. |
| 25 | +3. If the remote does not exist, create it using `git@github.com:TheSuperHackers/GeneralsGameCode.git`. |
| 26 | +4. Fetch `thesuperhackers`. |
| 27 | +5. Merge `thesuperhackers/main` into the new branch. |
| 28 | +6. Resolve all conflicts by following the merge instructions below exactly. |
| 29 | +7. Ensure the repository remains buildable and configurable after conflict resolution. |
| 30 | +8. Commit the final merge result. |
| 31 | +9. Push the branch `thesuperhackers-sync-MM-DD-YYYY` to origin. |
| 32 | + |
| 33 | +## Critical Merge Instructions |
| 34 | + |
| 35 | +Expect many conflicts because the projects intentionally diverged. Every conflict must be analyzed individually and in detail. |
| 36 | + |
| 37 | +- Expect many files moved from `Generals/` and `GeneralsMD/` into a unified `Core/` directory. Do not assume that all conflicts in those areas should be resolved by keeping the `TheSuperHackers` version. |
| 38 | +- Do not use blanket conflict strategies for large areas of the tree. |
| 39 | +- Do not sacrifice the cross-platform architecture of `GeneralsX` just to make the merge easy. |
| 40 | +- Do not blindly keep either side. Reconcile changes so that useful `TheSuperHackers` bug fixes, stability work, and optimizations are preserved whenever they do not break the `GeneralsX` platform strategy. |
| 41 | +- Preserve the functional cross-platform stack already established in `GeneralsX`: SDL3 for platform/windowing/input, DXVK for graphics, OpenAL for audio, and FFmpeg where applicable. |
| 42 | +- Preserve platform isolation. Do not allow platform-specific code to leak into gameplay logic. |
| 43 | +- Keep legacy compatibility paths only where they are still intentionally maintained by this repository, but do not let original-binary compatibility override the `GeneralsX` cross-platform objective. |
| 44 | +- Review conflicts with extra care in these areas: |
| 45 | + - build system and presets |
| 46 | + - SDL3, DXVK, OpenAL, FFmpeg, and platform abstraction layers |
| 47 | + - shared engine code under `Core/` |
| 48 | + - `Generals/` and `GeneralsMD/` code that may have been unified or refactored upstream |
| 49 | + - launch paths, renderer setup, audio wiring, and asset/runtime integration |
| 50 | +- If a conflict involves a removal or downgrade of an existing cross-platform capability, treat that as a high-risk decision and justify it explicitly before accepting it. |
| 51 | +- Prefer root-cause conflict resolution over temporary hacks, disabled code paths, or quick stubs. |
| 52 | + |
| 53 | +## Validation Requirements |
| 54 | + |
| 55 | +It is imperative that configure and build workflows still work after the merge. At minimum, validate the relevant project tasks and report the outcome clearly. |
| 56 | + |
| 57 | +Prioritize verifying: |
| 58 | + |
| 59 | +- macOS configure/build flow |
| 60 | +- Linux configure/build flow |
| 61 | +- any touched deployment or run scripts |
| 62 | +- core runtime paths affected by the merge |
| 63 | + |
| 64 | +If a full validation cannot be completed, state exactly what was not run and why. |
| 65 | + |
| 66 | +## Deliverables |
| 67 | + |
| 68 | +After the sync is complete, provide: |
| 69 | + |
| 70 | +1. A concise summary of what was merged from `TheSuperHackers`. |
| 71 | +2. A conflict-resolution report describing the most important merge decisions and why they were made. |
| 72 | +3. A list of files or subsystems that remain risky and should receive extra review. |
| 73 | +4. The final branch name, commit hash, and push status. |
| 74 | +5. A user checklist of what should be tested next. |
| 75 | + |
| 76 | +## Required User Checklist |
| 77 | + |
| 78 | +The final response must include a checklist covering at least: |
| 79 | + |
| 80 | +- configure on all supported platforms |
| 81 | +- build on all supported platforms |
| 82 | +- game launch |
| 83 | +- main menu |
| 84 | +- skirmish gameplay |
| 85 | +- campaign flow |
| 86 | +- audio playback |
| 87 | +- video playback |
| 88 | +- renderer stability |
| 89 | +- input handling |
| 90 | +- mod loading if affected |
| 91 | +- any feature areas touched by resolved conflicts |
| 92 | + |
| 93 | +## Execution Notes |
| 94 | + |
| 95 | +- Work carefully and deliberately. This is not a mechanical merge. |
| 96 | +- Read relevant repository instructions and reference material before resolving difficult conflicts. |
| 97 | +- Keep the final result aligned with the `GeneralsX` mission: a functional, modern, cross-platform codebase. |
0 commit comments