Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
617 commits
Select commit Hold shift + click to select a range
da0102a
Change satellite name to localized string
Dec 14, 2025
41e6d8e
Refactor message construction for satellite terminal
Dec 14, 2025
be5854b
Refactor atmosphere detection and button creation
Dec 14, 2025
6dcaec4
Implement minimum brightness in stellar brightness calculation
Dec 14, 2025
e6d74f7
Refactor language file for clarity and consistency
Dec 14, 2025
1697be5
Fix tooltip localization for hovercraft item
Dec 14, 2025
792ac42
Fix formatting issue in BlockThermiteTorch.java
Dec 14, 2025
7d84c0a
Fix missing newline at end of ItemBiomeChanger.java
Dec 14, 2025
6ccd784
Merge pull request #4 from kaduvill/2.2.2
Dec 14, 2025
6bd863c
Merge pull request #3 from ZHAY10086/1.12
Dec 14, 2025
14ddb05
Add @SideOnly annotation to LIVE variable
Dec 18, 2025
bcbcf84
Enhance liquid container compatibility check
Dec 18, 2025
ced4ca3
Refactor TileRocketFluidLoader for clarity and efficiency
Dec 18, 2025
5f97014
Refactor fluid handling in TileRocketFluidUnloader
Dec 18, 2025
ece0124
Reduce transfer interval ticks from 20 to 10
Dec 18, 2025
7343bfd
Update comment for transfer interval in fluid unloader
Dec 18, 2025
4842309
Replace ModuleContainerPanYOnlyWithScrollCache usage
Dec 18, 2025
fe02b31
Add scroll list panel and cache management methods
Dec 18, 2025
0428f9e
Add methods for UI scroll cache management
Dec 18, 2025
4f7e6e3
Refactor TilePump to use localTick for timing
Dec 18, 2025
a3e3776
Refactor TileObservatory for seed and button management
Dec 18, 2025
38706e5
Add anchored warning module to TileStationOrientationController
Dec 18, 2025
fc1a606
Add anchored warning to TileStationAltitudeController
Dec 18, 2025
dbb97fa
Localize power and time labels in drawInfo method
Dec 18, 2025
4265d4f
Add newline at end of TileSatelliteBuilder.java
Dec 18, 2025
185b402
Update language
Dec 18, 2025
fda8908
Fix missing newline at end of TileOrbitalRegistry.java
Dec 18, 2025
4299af2
Update changelog for versions 2.2.0 to 2.2.2
Dec 18, 2025
3fb597a
Update changelog to version 2.2.2
Dec 18, 2025
4aa9522
Update zh_CN.lang
ZHAY10086 Dec 18, 2025
f9b2fb4
Update changelog with launch issue fix details
Dec 18, 2025
9e2ef17
Merge pull request #5 from ZHAY10086/1.12
Dec 18, 2025
f03f0cb
Fix observatory databuses type handling in changelog
Dec 19, 2025
5dfc958
Implement chip planet info stamping
Dec 20, 2025
44138d6
Refactor energy transmission and dimension ID methods
Dec 20, 2025
6b0f947
Add dataBusBigMultiplier configuration property
Dec 20, 2025
c7efdd3
Replace static multiplier with configurable value
Dec 20, 2025
4715e63
Replace I18n.format with I18n.translateToLocalFormatted
Dec 20, 2025
f3e001d
Improve satellite name localization in tooltip
Dec 20, 2025
cc681e5
Improve satellite item tooltip translation
Dec 20, 2025
975ddb9
Refactor NBT handling in ItemIdWithName class
Dec 20, 2025
728a3a5
Refactor artifact gating logic in EntityRocket
Dec 20, 2025
0235883
Implement getConnectedSatellitesLive method
Dec 20, 2025
c6a5771
Remove unnecessary comment in TileSatelliteTerminal
Dec 20, 2025
691354a
Fix missing newline at end of TileOrbitalRegistry.java
Dec 20, 2025
afb8b9c
Add error message for missing required artifact
Dec 20, 2025
079a908
Refactor ItemBlockDataBusBig for dynamic max data
Dec 20, 2025
f060029
Add client-side translation for abort reasons
Dec 20, 2025
47ae828
Add generatesData field to satellite entries
Dec 20, 2025
f6129ba
Add data generation calculations to ItemSatellite
Dec 20, 2025
5ec69e4
Add data generation messages to lang file
Dec 20, 2025
5078388
Update zh_CN.lang
ZHAY10086 Dec 20, 2025
08df7af
Update language file with improved tooltips
Dec 22, 2025
e8e243c
explain 6 squares
Dec 22, 2025
90da322
Refactor scan button initialization in TileObservatory
Dec 22, 2025
872cdaf
Refactor TileOrbitalRegistry and improve scan handling
Dec 22, 2025
a20f8cc
Refactor tooltip keys for advanced rocketry items
Dec 22, 2025
c2b0ad2
Revise changelog for version 2.2.2
Dec 22, 2025
4e87c32
Update changelog with new features and hints
Dec 22, 2025
5971ad5
Revise changelog for version updates and fixes
Dec 22, 2025
44bcd53
Update gravity controller messages for clarity
Dec 22, 2025
df5635e
Update zh_CN.lang
ZHAY10086 Dec 22, 2025
194edee
Merge pull request #6 from ZHAY10086/1.12
Dec 22, 2025
7034cd5
Update contributors in changelog.md
Jan 7, 2026
18b4e8c
Add asteroid entry and update tooltip for misc item
Jan 15, 2026
f60831c
Implement AsteroidCategory for JEI integration
Jan 15, 2026
4f6d4a0
Add AsteroidRecipeHandler for JEI integration
Jan 15, 2026
9065590
Add AsteroidRecipeMaker for JEI integration
Jan 15, 2026
522a7fc
Add AsteroidWrapper class for JEI integration
Jan 15, 2026
f850fb3
Implement OrbitalLaserDrillCategory for JEI integration
Jan 15, 2026
6053d8c
Add OrbitalLaserDrillRecipeHandler class
Jan 15, 2026
bcacc34
Add OrbitalLaserDrillRecipeMaker class for JEI integration
Jan 15, 2026
2822f96
Add OrbitalLaserDrillWrapper for JEI integration
Jan 15, 2026
3f6aa3a
Add asteroid and orbital laser drill support in JEI
Jan 15, 2026
3b784b7
Refactor button creation for asteroid harvesting
Jan 15, 2026
d83f2cb
Refactor item handling in MissionOreMining class
Jan 15, 2026
c75dd14
Add ModuleItemSlotButton for rendering ItemStacks
Jan 15, 2026
ed9948e
Improve time display formatting in MachineRecipe
Jan 15, 2026
1a12124
Implement create station command in WorldCommand
Jan 27, 2026
9425e99
Update changelog for version 2.2.2.1
Jan 27, 2026
2c86c3e
Update modVersion to 2.2.2.1
Jan 28, 2026
3e91e05
Update changelog for version 2.2.2.2
Jan 28, 2026
a6d4ea0
Refactor EntityHoverCraft for improved control and rendering
Feb 6, 2026
fd33bff
Add tooltip for hovercraft steering controls
Feb 6, 2026
11f953d
Remove tooltip information from ItemHovercraft
Feb 6, 2026
b80a296
Add tooltip for hovercraft in TooltipInjector
Feb 6, 2026
7fea093
Implement yaw interpolation in hovercraft rendering
Feb 6, 2026
37b6ed9
Comment out turning controls for hoverCraft
Feb 6, 2026
cc57fef
Change ARHoverCraft entity registration slighty to fix stutter
Feb 6, 2026
50cb6c9
Migrate to modern buildscript
jchung01 Feb 23, 2026
01eb1c4
Minimize access transformers
jchung01 Feb 23, 2026
18cb55e
Load planet xmls earlier in FMLServerAboutToStartEvent
jchung01 Feb 23, 2026
873efe4
Inject world info for weather without using ASM
jchung01 Feb 23, 2026
1a47e30
Remove HookLib and old async weather impl
jchung01 Feb 23, 2026
90b3c46
Register WorldInfoHandler
jchung01 Feb 24, 2026
16f1c60
Add weather redirect command
jchung01 Feb 24, 2026
c69f627
Rewrite commands to be tree-based
jchung01 Feb 25, 2026
04b3e9e
Fix wrong command for redirect
jchung01 Feb 26, 2026
9a24c20
Merge pull request #7 from jchung01/fix/async-weather
Feb 26, 2026
e4a4289
Update zh_CN.lang
ZHAY10086 Feb 26, 2026
5caf773
Merge pull request #8 from ZHAY10086/zh_cn
Feb 26, 2026
7399be9
update version
kaduvill Feb 26, 2026
935d364
Bump mod_version to 2.2.3
Feb 26, 2026
bdc2227
Update changelog to version 2.2.3
Feb 26, 2026
9f142f0
changelog, smoother hovercrafting
kaduvill Feb 26, 2026
dca56fe
f
kaduvill Feb 26, 2026
19275df
Merge branch '1.12' of https://github.com/kaduvill/AdvancedRocketry i…
kaduvill Feb 26, 2026
630f8de
strengthen planetdefs saving, and asteroid dimensions.
kaduvill Feb 27, 2026
200cd55
- Hovercraft: inverted steering fixed
kaduvill Mar 9, 2026
477afbf
/ar create station fixed
kaduvill Mar 11, 2026
b0b3c10
Documentation
kaduvill Mar 11, 2026
b6488a3
a
kaduvill Mar 11, 2026
7cf5231
updated docs
kaduvill Mar 11, 2026
6c9afe1
Delete XML_CONFIG_README.txt
kaduvill Mar 11, 2026
fd0f0fd
Revise README.md with detailed project information
kaduvill Mar 11, 2026
405b0bf
Update README.md formatting and content
kaduvill Mar 11, 2026
ccc48d5
Revise README for clarity and updated information
kaduvill Mar 11, 2026
14a3e78
Update README.md with additional information
kaduvill Mar 11, 2026
1dc5dec
Update README with additional documentation links
kaduvill Mar 11, 2026
27b7359
Update README.md for clarity and formatting
kaduvill Mar 11, 2026
e7eeb96
Revise README for clarity and additional resources
kaduvill Mar 11, 2026
c01779e
updated docs
kaduvill Mar 11, 2026
7cfa2c9
commands, oreconfig.xml and docs
kaduvill Mar 15, 2026
8aef387
.
kaduvill Mar 15, 2026
f4d4495
small readme changes
kaduvill Mar 15, 2026
fc9af93
small changelog
kaduvill Mar 15, 2026
53cadad
small changelog
kaduvill Mar 15, 2026
58425c6
docs and small cleanup
kaduvill Mar 16, 2026
ab7fc01
docs and small cleanup
kaduvill Mar 16, 2026
8e23dc4
docs and small cleanup
kaduvill Mar 16, 2026
bcf01f6
docs and small cleanup
kaduvill Mar 16, 2026
99fe798
last command lower-case alias. (i think)
kaduvill Mar 18, 2026
47662db
theoneprobe integration
kaduvill Mar 19, 2026
2e87d64
theoneprobe integration
kaduvill Mar 19, 2026
d008a2f
theoneprobe integration
kaduvill Mar 20, 2026
663a36f
theoneprobe integration
kaduvill Mar 20, 2026
ce1b96b
theoneprobe integration
kaduvill Mar 20, 2026
5a74c86
.
kaduvill Mar 21, 2026
760908c
rocket 1pixel fix, + changelogupdate
kaduvill Mar 21, 2026
bf09b35
.
kaduvill Mar 22, 2026
548ec77
update
ZHAY10086 Mar 23, 2026
584e0fd
typo fix
ZHAY10086 Mar 23, 2026
2132738
biomescanner small adjusting in GUI and Tooltip.
kaduvill Mar 23, 2026
963c85e
fixed leaky GLstates. this broke rendering in players inventories whi…
kaduvill Mar 23, 2026
b83ce16
Vacuum laser block always face up, (small confusion fix when building…
kaduvill Mar 23, 2026
3c462d1
CLEANUP remove deprecated cablesystem, big refactor of wireless trans…
kaduvill Mar 23, 2026
58d188b
CLEANUP remove deprecated cablesystem, big refactor of wireless trans…
kaduvill Mar 24, 2026
9ae9912
update
ZHAY10086 Mar 24, 2026
428df47
Merge branch '1.12' of https://github.com/kaduvill/AdvancedRocketry i…
ZHAY10086 Mar 24, 2026
d6cadf6
update
ZHAY10086 Mar 24, 2026
efaa726
XML strengthening and further transceiver fixing.
kaduvill Mar 24, 2026
d5f17de
small color
kaduvill Mar 24, 2026
ba243d7
gas missions jei intergration. immune player rocket tp, and wireless …
kaduvill Mar 26, 2026
aafa7af
e
kaduvill Mar 26, 2026
90fe863
final?
kaduvill Mar 26, 2026
683fbe7
Merge branch '1.12' of https://github.com/kaduvill/AdvancedRocketry i…
ZHAY10086 Mar 27, 2026
7d9e869
update
ZHAY10086 Mar 27, 2026
2e1246a
Merge pull request #9 from ZHAY10086/zh_cn
kaduvill Mar 27, 2026
d353630
Small Plate Press reworked model, and cleaned up 6 ways of naming thi…
kaduvill Mar 27, 2026
9976ac8
Merge remote-tracking branch 'origin/1.12' into 1.12
kaduvill Mar 27, 2026
d925225
Small Plate Press refactor back to old naming for compat with scripts…
kaduvill Mar 28, 2026
c9952e7
temp.dat fix, and changelog
kaduvill Mar 28, 2026
fdaf42b
leaky glstates
kaduvill Mar 30, 2026
e8f5429
.
kaduvill Mar 30, 2026
b66a6d2
.
kaduvill Mar 30, 2026
6d2519c
.
kaduvill Mar 31, 2026
dc80087
.
kaduvill Mar 31, 2026
1241563
Waila integration (#10)
Wizzerinus Apr 1, 2026
bb4a77c
.
kaduvill Apr 1, 2026
4ad2b02
Update zh_CN.lang (#11)
ZHAY10086 Apr 1, 2026
aa27d15
.
kaduvill Apr 9, 2026
1a41966
Merge remote-tracking branch 'origin/1.12' into 1.12
kaduvill Apr 9, 2026
c127e05
.
kaduvill Apr 9, 2026
11f1ae9
old voiddrill bug
kaduvill Apr 11, 2026
993cb5e
.
kaduvill Apr 18, 2026
fb8e198
AtmosphereDetector show and tell player selection. (overhaul, aligned…
kaduvill Apr 29, 2026
3eea8f4
changelog 2.2.7 update
kaduvill Apr 29, 2026
e90e220
"Back to Rocket" button. and buildscript + libvulpes update
kaduvill Apr 30, 2026
e7c7ee0
clean up translation
kaduvill Apr 30, 2026
5d62709
Update zh_CN.lang (#12)
ZHAY10086 Apr 30, 2026
eb9ca77
- StorageChunk now replaces corrupt blocks with air instead of losing…
kaduvill May 1, 2026
989693a
resetPlanetsFromXML now only lives under Planet {}, also repairs: "Re…
kaduvill May 1, 2026
115a6ce
biomes are now saved by registry name instead
kaduvill May 1, 2026
c85e577
added "/ar fd chip"
kaduvill May 3, 2026
e956a97
reverted Agressive Storagechunk repairing.
kaduvill May 3, 2026
2e29d67
translation for "/ar fd chip"
kaduvill May 3, 2026
d6718fd
GasGiants JEI: added bucketversions as "hidden outputs"
kaduvill May 3, 2026
742d03c
- Missions:
kaduvill May 3, 2026
ec1aaa1
PlusTic compat: dont let portly gentleman rotate rocket.
kaduvill May 4, 2026
df9d233
"Back to Rocket" button for Satellite Bay (QoL)
kaduvill May 4, 2026
66b6680
.
kaduvill May 4, 2026
cb46cd7
.changelog
kaduvill May 4, 2026
8e1eba7
en_US: 1 missing + small cleanup
kaduvill May 7, 2026
a4d5fa0
Fixed station-return softlock for stations orbiting gated planets.
kaduvill May 7, 2026
f0cd45c
update repo to libvulpes-0.5.3
kaduvill May 7, 2026
c9ea71a
bump version, ready for 2.2.9
kaduvill May 8, 2026
4ec3972
Update zh_CN.lang (#13)
ZHAY10086 May 9, 2026
345c3ec
simple hygiene, clear static Particle list from unloading dimension
kaduvill May 11, 2026
b75730f
oxygenvent: unregister atmosphere-handler on chunkunload aswell
kaduvill May 11, 2026
b1c04f5
Clean up AtmosphereHandler static state on server stop
kaduvill May 11, 2026
02b9bb6
Clean up AtmosphereHandler
kaduvill May 11, 2026
fb7ab57
client memory-reference cleanup: SoundRocketEngine
kaduvill May 12, 2026
a6e1eb8
CLEAN
kaduvill May 12, 2026
11ff159
Frequency multipliers: 2 = double
kaduvill May 19, 2026
f473cf6
fixed Lava flow tiling
kaduvill May 19, 2026
f9de01b
DONT ALLOW NEGATIVE Y CRASH
kaduvill May 19, 2026
4bf17ca
CHANGELOG.md
kaduvill May 19, 2026
bd83cba
.
kaduvill May 20, 2026
46554a8
.
kaduvill May 22, 2026
5bd0635
increased RocketTPgracetime from 60 to 100 ticks
kaduvill May 23, 2026
25015aa
cleaned up 11year old fml.commonhandler.unregister making rare crash.
kaduvill May 23, 2026
d50786d
Changelog 2.2.9
kaduvill May 23, 2026
44a1136
fixed 2 Gl.state.leaks
kaduvill May 23, 2026
5bf782e
small
kaduvill May 23, 2026
00b7924
small cleanup and translation correctness.
kaduvill May 23, 2026
428d921
small cleanup and translation correctness.
kaduvill May 23, 2026
c1c791d
Update zh_CN.lang (#14)
ZHAY10086 May 24, 2026
127b127
build: migrate to RetroFuturaGradle 2.0.2
StannisMod May 31, 2026
ffbb6cb
refactor: drop HookLib coremod, adopt PR ASM transformers
StannisMod May 31, 2026
78aa409
refactor: replace WorldCommand monolith with ARCommandRoot tree
StannisMod May 31, 2026
00930e1
refactor: remove cable subsystem, add wireless network backend
StannisMod May 31, 2026
7896634
feat: adopt PR tile/block/inventory rewrites
StannisMod May 31, 2026
504282b
feat: adopt PR item rewrites
StannisMod May 31, 2026
e348dc9
feat: adopt PR entity/mission/satellite/atmosphere rewrites
StannisMod May 31, 2026
086ea82
feat: adopt PR world/dimension/worldgen rewrites
StannisMod May 31, 2026
d7312ea
feat: adopt PR integrations (JEI/TheOneProbe/Waila)
StannisMod May 31, 2026
4eab83d
feat: adopt PR client/render changes
StannisMod May 31, 2026
b5b2551
feat: adopt PR API/config/main class changes
StannisMod May 31, 2026
72a2ca5
feat: adopt PR resources, lang, models, docs
StannisMod May 31, 2026
877d149
refactor: restore Mixin platform over PR ASM coremod
StannisMod May 31, 2026
ae99f63
feat: per-dimension weather on Mixin platform, port PR flag
StannisMod May 31, 2026
6a0dd09
refactor: drop PlusTiC Portly rocket ASM compat
StannisMod May 31, 2026
c980c4f
fix: reapply NBT key/attach bugs not fixed upstream
StannisMod May 31, 2026
03cde8b
test: import unit + integration suites on RFG
StannisMod May 31, 2026
dbbcf43
test: wire RFG dedicated-server harness (testServer/testClient)
StannisMod Jun 1, 2026
af15494
chore: add CLAUDE.md project rules (RU communication, bounded harness…
StannisMod Jun 1, 2026
ac80b39
docs: restore .agent Navigator history + rules from feature/tests
StannisMod Jun 1, 2026
ac4fc0a
test: port /artest TestProbeCommand to the upstream-merged API
StannisMod Jun 1, 2026
a265578
test: import 132 dedicated-server scenario tests (compile-green on RFG)
StannisMod Jun 1, 2026
18a8ba5
test: fix wireless transceiver registry name in server tests
StannisMod Jun 1, 2026
17a2a7c
test: fix mission complete-now probe against rewritten mission API
StannisMod Jun 1, 2026
b01590f
test: reconcile command-surface tests to ARCommandRoot; reapply reloa…
StannisMod Jun 1, 2026
58c9ac0
test: reconcile forcefield/zero-fuel/wireless-default to PR behavior
StannisMod Jun 1, 2026
901b743
test: add intake + liquid tank to uv-rocket probe fixture
StannisMod Jun 1, 2026
4c244cf
test: drive satellite-terminal erase via server-side useNetworkData
StannisMod Jun 1, 2026
74a0959
docs: R5 progress marker — server suite 23/25 green, remaining work
StannisMod Jun 1, 2026
5a1fe3e
docs: checkpoint R5 — client tests on display :100, Phase E integrati…
StannisMod Jun 1, 2026
fe01a98
test: fix last 3 failing server tests after RFG harness port
StannisMod Jun 1, 2026
0898f83
test: integrate real-client e2e suite under RFG
StannisMod Jun 1, 2026
6d01123
merge: absorb upstream PR #70 history (kaduvill/1.12) for attribution
StannisMod Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,241 @@
# Context Marker: test-suite-junit-migration-eod

**Created**: 2026-05-12 18:47
**Note**: End of session — full test-suite migration to JUnit-native + framework
0.3.0 + selector test layer added. All targeted work landed green.

---

## Conversation Summary

Long session covering the full evolution of the AR test suite:

1. **Audit start**: Read SMART task spec + branch `feature/tests`. Identified
that previous bootstrap pattern (`AdvancedRocketryTestBootstrap` + custom
`TestRegistry`/`TestOrchestrator`) was an anti-pattern wrapping 28 scenarios
in a single JUnit method — blocked parallelism, blocked `--tests` filtering,
blocked IDE integration.

2. **Mass test deepening**: Migrated framework dep to mavenLocal, added new
`/artest` probes (station create, satellite create, atmosphere set-density,
terraforming set-density, energy inject, tile force-tick, infra link,
worldgen ore-stats, machine recipes-summary). Deepened 11 scenarios from
probe-wiring smoke to real gameplay drivers.

3. **JUnit migration** (framework 0.2.1→0.2.2→0.3.0):
- 0.2.2: Added JUnit base classes `AbstractHeadlessServerTest` +
`AbstractClientE2ETest` to framework. Republished to mavenLocal.
- AR migration: 28 scenarios → JUnit @Test methods extending new bases.
Deleted bootstrap/registry/HarnessBoundScenario legacy wrappers.
Configured `maxParallelForks` (default 3) + `forkEvery=1`.
- Build glue: `JAVA_TOOL_OPTIONS` env trick to forward FG6 system properties
to harness subprocess JVM (fixes FMLDeobfuscatingRemapper NPE).
- 0.3.0: Deleted framework's entire legacy runner layer (TestRegistry,
TestOrchestrator, TestBootstrap, HeadlessGameTest, TestContext, TestOutcome,
TestStatus, TestReportWriter, TestAssertions, TestFrameworkTest). Framework
is now a pure library — harness + bot + JUnit bases only.

4. **Reorganization**: Tests split by SMART §2 pyramid layer into
`unit/`, `integration/`, `server/`, `client/` subpackages. Build glue routes
`gradle test` → unit+integration (fast, no harness) and
`gradle testAdvancedRocketryScenarios` → server+client (heavy, harness=true).

5. **Multiblock + recipe end-to-end**: Added `fixture machine cutting`,
`machine try-complete`, `machine set-enabled`, `machine recipe-info`,
`hatch fill/read` probes. `MultiblockValidationSmokeTest` now validates real
multiblock isComplete cycle (build → validate → break → invalidate → restore
→ validate). `MachineRecipeIntegrationTest` now drives the full recipe cycle
(build fixture → validate → resolve first recipe → fill input → charge power
→ enable → tick → verify output in output hatch).

6. **Dead-stub cleanup**: User pointed out @Ignore stubs claiming "covered in
§X.Y" were lies — scenarios cited didn't actually test packet wire format or
deep XML parsing. Audited each claim, then:
- Deleted `PlanetWeatherStateTest` (7 weather-B1 stubs — class doesn't exist
yet, file was just an empty TODO list).
- Added `integration/PacketSerializationTest` (6 wire-format round-trips:
PacketDimInfo, PacketSatellite, PacketStationUpdate FUEL+ORBIT,
PacketConfigSync, PacketDimInfo null-deletion signal).
- Added `integration/XMLPlanetLoaderTest` (11 deep parsing tests: DIMID
resolution, parent/child planet hierarchy, weather fields parsed +
defaulted + invalid-marker behavior, atm/gravity clamping).

7. **Planet selector test** (last batch):
- `/artest selector info` + `/artest selector simulate-click` probes.
- `server/SelectorServerSmokeTest` (always-on): place block, simulate-click,
verify dimCache populates. Rejects unregistered planet dims.
- `client/PlanetSelectorGuiE2ETest` rewritten as minimal GUI smoke:
rightClickBlock → reportState shows GUI → closeScreen. No empirically-
derived pixel coords. Opt-in via `forge.test.client.enabled=true`.

## Documentation Loaded

- Navigator: ✅ `.agent/DEVELOPMENT-README.md` (session start)
- SMART task: `docs/advanced_rocketry_full_test_suite_smart.md` (referenced
throughout via test categories §6/§7)
- No additional system docs / SOPs read

## Files Modified

### Framework (`C:\Users\Quarter\IdeaProjects\ForgeTestFramework`)
- `build.gradle` — version 0.2.1 → 0.3.0
- `dependencies.gradle` — added `compileOnly junit:junit:4.13.2`
- `README.md` — rewritten to declare framework as harness-only library
- `TEST_FRAMEWORK.md` — removed legacy-runner layer from architecture
- NEW: `src/main/java/.../junit/AbstractHeadlessServerTest.java`
- NEW: `src/main/java/.../junit/AbstractClientE2ETest.java`
- DELETED: `HeadlessGameTest`, `TestRegistry`, `TestOrchestrator`,
`TestBootstrap`, `TestContext`, `TestOutcome`, `TestStatus`,
`TestReportWriter`, `TestAssertions`, `TestFrameworkTest`

### AR (`C:\Users\Quarter\IdeaProjects\AdvancedRocketry`)
- `build.gradle.kts` — framework dep 0.2.1 → 0.3.0; `maxParallelForks=3`
default; filter split into test (unit+integration) vs scenarios (server+
client); `JAVA_TOOL_OPTIONS` env forwarding; explicit `MC_VERSION` env
- `src/test/README.md` — rewritten Layout + Running sections to reflect
4-package pyramid layout + new tests + new probes
- `src/main/java/.../command/test/TestProbeCommand.java` — many new sub-commands
- `src/main/java/.../tile/multiblock/{TileObservatory,TileBlackHoleGenerator,
TileMicrowaveReciever}.java` + `tile/multiblock/machine/{TileElectricArcFurnace,
TilePrecisionAssembler}.java` — null-guard in `getAllowableWildCardBlocks`
(server-postInit NPE fix, strictly outside SMART §3 but unblocks all
scenarios)
- 28 scenario test classes rewritten as JUnit @Test extending new bases
- 3 unit tests moved to integration/ (need MinecraftBootstrap)
- DELETED: `AdvancedRocketryTestBootstrap`, `AdvancedRocketryTestRegistry`,
`FrameworkWiringSmokeTest`, `HarnessBoundScenario`, `ClientHarnessBoundScenario`
- NEW: `server/SelectorServerSmokeTest`, `integration/PacketSerializationTest`,
`integration/XMLPlanetLoaderTest`

## Current Focus

**State**: All work in this session is committed-ready (working tree green;
not yet committed per global rule — user must approve diff).

**Test outcomes**:
- `./gradlew test` → **102 PASSED, 0 SKIPPED, 0 FAILED** (~30s)
- `./gradlew testAdvancedRocketryScenarios` → **27 PASSED, 6 SKIPPED, 0 FAILED**
(~9m @ default `-Pforks=3`)

**Branch**: `feature/tests`. Working tree has many modifications + deletions +
additions. Not committed.

## Technical Decisions

- **Framework cleanup**: Decided to fully delete the legacy runner layer rather
than keep it as "standalone fallback". Framework is now strictly a library:
harness + bot + JUnit base classes. Bumped to 0.3.0 to signal breaking change.
- **Test layering by SMART §2 pyramid**: `unit/` (pure JVM) → `integration/`
(MC bootstrap in-JVM) → `server/` (real dedicated server JVM) → `client/`
(real server + real MC client). Gradle tasks routed accordingly.
- **JAVA_TOOL_OPTIONS workaround**: framework harness doesn't forward parent
JVM `-D` flags to spawned server JVM. Solution: pack them into
`JAVA_TOOL_OPTIONS` env var which every JVM auto-prepends. Documented in
`src/test/README.md`.
- **Recipe test approach**: Resolve first recipe dynamically via probe rather
than hardcoding "log→planks" — keeps test config-agnostic. Cutting machine
picked as canonical recipe because its multiblock is the smallest (1×2×3) of
all AR machines.
- **Planet selector test split**: Two-layer — server-side state machine
always-on (`SelectorServerSmokeTest`), client GUI smoke gated on display
(`PlanetSelectorGuiE2ETest` minimal, no empirically-derived coords).
- **Dead-stub cleanup**: User insisted (correctly) that @Ignore tests claiming
"covered in §X.Y" were often false. Audited and either deleted (weather B1
stubs — class doesn't exist) or replaced with real tests (4 packets + 11 XML
deep parsing).

## Next Steps

When user resumes / starts a new session:

1. **Review + commit current work**. Working tree has substantial changes
across framework + AR. Per global CLAUDE.md rule, user must approve diff
before any commit; Claude should NOT auto-commit.

2. **Continue test-deepening backlog** (if user wants more coverage). Order
from earlier plan:
- #2 Sealed-room oxygen vent end-to-end (`AtmosphereOxygenSmokeTest`)
- #3 Real rocket launch with guidance chip (`RocketLaunchSmokeTest`)
- #4 AR-tile NBT + EntityRocket persistence (`PersistenceRestartSmokeTest`)
- #5 Coal generator real cycle (`EnergySystemsSmokeTest`)
- #6 Distance limit + fuel transfer (`RocketInfrastructureSmokeTest`)
- #7 Real terraformer multiblock cycle (`TerraformingSmokeTest`)

3. **Implement remaining client E2E tests** (when user has display):
- GuidanceComputerGuiE2ETest — needs chip-insertion fixture
- RocketBuilderGuiE2ETest — needs GUI button click sequence
- OxygenSuitClientStateE2ETest — needs bridge probe for player effects
- WeatherClientSyncE2ETest — blocked on weather B1 production refactor

4. **Weather B1 production refactor** — the original purpose of this branch.
All P0 weather tests are ready (`WeatherBaselineTest` parameterized via
`-Pweather=shared|per_dimension`, `WeatherPersistenceTest`). After B1 lands,
flip the expected mode and re-run.

## User Intent & Goals (ToM)

**Primary goal this session**: Build a robust, fast, parallelizable test suite
that gives real regression signal across AR's gameplay surfaces — and clean up
the existing test-suite design debt (custom orchestrator, fake @Ignore stubs,
flat layout). Final outcome: tests are the safety net for an upcoming weather
B1 production refactor.

**Stated preferences**:
- "Никаких командных аргументов" for IDE workflow — IDE "Run all in directory"
should just work without `-Pforks=N` etc. → reorganized by test type.
- "forks=3 многовато 6" → lowered default to 3.
- Prefer cleanup over half-measures — when shown that the orchestrator could be
removed entirely, user immediately approved full deletion ("Вариант A").
- Russian conversational language throughout.

**Corrections made**:
- "Tests for weather B1 cannot reference classes that don't exist — first you
write the change, only then cover it" — pushed back on TDD-stub @Ignore
approach for weather B1 specifically. Resolved by deleting the file entirely
rather than keeping empty stubs.
- "Покрытые в других пунктах SMART — но на самом деле не реализованные" —
identified that @Ignore "covered in §X.Y" claims were lies for XML loader +
packet round-trip tests. Resolved by adding real integration tests instead of
deleting the @Ignore stubs.
- "Подпапки = типы тестов, не приоритеты" — corrected the initial subpackage
proposal (P0/P1/P2) to SMART §2 pyramid layers (unit/integration/server/
client).

## Belief State

**What user knows**:
- Deep familiarity with Minecraft Forge 1.12.2 modding, libVulpes multiblock
patterns, AR's `DimensionManager`/`SpaceObjectManager`/`SatelliteRegistry`
architecture.
- Knows what SMART task spec contains and references sections by number.
- Comfortable with Kotlin DSL Gradle, FG6 internals (runServer classpath
reflection).
- Senior-level developer — push-back on dubious patterns, expects clean
decomposition, dislikes "fake coverage".

**Assumptions I made**:
- User is on Windows desktop (filesystem paths, machine sized for 3-fork
parallel server JVMs but not 6).
- Display IS available locally → client E2E tests would work with
`-PclientHarness=true` but user hasn't tested that.
- Framework's `feature/tests` work is the user's own project — they want clean
state to publish, not just experiments.
- `ARConfiguration.getCurrentConfig()` works in unit JVM (verified empirically
— singleton lazy-inits).

**Uncertainty areas**:
- Whether user will adopt the `-PclientHarness=true` workflow OR drop client
tests entirely.
- Whether the user plans to publish the framework as an actual open-source
library or it's just for their personal use across mods.
- What the weather B1 refactor scope looks like — only the tests' expected
behavior is documented, not the implementation plan.

## Restore Instructions

To restore this marker:
```
Read .agent/.context-markers/2026-05-12-1847_test-suite-junit-migration-eod.md
```

Or use: `/nav:markers` and select this marker.
Loading