Commit graph

3,090 commits

Author SHA1 Message Date
Meta Vens
642a61ebbf Visibility 4a: the ping test ticks once so Ping() fires; a departure counts light on every channel
The ping test never pinged (a sensor's cooldown opens on its first tick), so a restored ping bump survived. ADepartureCountsLightOnEveryChannel pins the departure to the subject's whole Visibility. Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 00:27:22 +02:00
Meta Vens
dfa85be635 Visibility 4a: ping-light expectations in paint-mode test; ping test needs no lit-hull assertion
Builds; test run follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:10:01 +02:00
Meta Vens
d8b7f33d90 Visibility 4a: retire the ping's light signature; Emission is never light
SetSignature refuses Emission; Sensor.PingVisibility (key 7) is retired and
Ping() writes no signature; Sense's Emission skip, the departure subtraction
and SignatureOn are deleted. Tests: SetSignatureRefusesEmission,
APingNoLongerBrightensThePinger; fixtures drop PingVisibility.

Not yet built or tested at this commit (verify job follows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:51:46 +02:00
Meta Vens
08f19e6c6c Map: cut-sequence lines for mining-index-tree, mining-belt-cells, sim-speed-scale
Their specs were withdrawn under map-only-what-runs once their deferred
findings moved to follow-ups.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:05:11 +02:00
Meta Vens
734804b6d7 Aetheria release map: cut sequence of the 51 cuts withdrawn under map-only-what-runs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:00:40 +02:00
Meta Vens
b53d071ef6 Merge cut ships-addon-guards (Soul verdict cut-ships-addon-guards.s2) 2026-10-12 19:44:33 +02:00
Meta Vens
042a13f979 smoke_package: a tall image whose width rounds up pins rounding of the first axis (200x513 -> 100x256, not 99)
Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 07:03:13 +02:00
Meta Vens
aa2bf0d41f Guards fix: cultcache-py version is read from the imported module; texture cap boundary, rounding, orientation, group and failure cases pinned
Findings of verdict cut-ships-addon-guards.s1: guard-not-import (the version now comes from the checkout the imported
cultcache_py lives in, one owner, no pyproject-beside-a-path), prefix-compare-survives (0.3.0.1, 0.3.0rc1, 0.3.00
refused), cap-boundary-unpinned and group-restore-unpinned (smoke_package texture_boundary_cases: at the cap, one over,
height-long, non-square rounding, file/packed/node-group images, failed export restores). A copy whose scale raises is
removed. All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:59:24 +02:00
Meta Vens
68519f9fb9 Merge cut emoji-sequences (Soul verdict cut-emoji-sequences.s3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 06:39:40 +02:00
Meta Vens
faa05eec83 Merge cut vapour-cloud-presenter (Soul verdict cut-vapour-cloud-presenter.s2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 06:39:33 +02:00
Meta Vens
b00fc7e581 Emoji font rebuilt in python:3.13-slim on Yggdrasil with the 15 FE0F-less twins (reproduced: second run equals the lock); lock records fe0f_less_twins=15
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:27:25 +02:00
Meta Vens
d8150a504f Release map: visibility refresh at efee2a2a (body facts VR1-VR15, cut order, model page amendments)
Imagination imagination-aeth-refresh-visibility, session self-2026-10-11-ag2. The model page
amendments are stated in this section; folding them into the Visibility rework rows is owed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:04:38 +02:00
Meta Vens
873ee6eae4 Guards tests: version drift of any size is refused; the texture fixture's aspect is not a power-of-two ratio
The untested-cultcache test now refuses 0.4.0, 0.3.1 and 0.3 as well as 9.9.9 (a major-only comparison survived).
smoke_package's hull map is 4096x1000, so the scaled size (2048x500, 512x125) is not what a clamp of both sides or of
the other axis would give. Builds: yes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:41:08 +02:00
Meta Vens
efee2a2adc Merge origin/master into merge/contact-reveals
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:40:05 +02:00
Meta Vens
4acf05da46 smoke_mounts: the mirror matrix on wide grids, 14 and 15 cells across
Passes 7 and 8 run mirror_matrix on ships whose grids are 14 (even) and 15 (odd) wide; the expected twin cells are
grid_w - a - w computed in the matrix itself. Pass 6 (5 wide) now runs through the same matrix_pass function. This is
the commit that adds the cases for follow-up mirror-wide-grid-test. Builds: yes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:38:42 +02:00
Meta Vens
5545c850a2 Add-on: Max texture preference; ship.glb exports larger material images scaled
_export_glb points each Image Texture node of the exported objects' materials whose image is longer than the Max texture
preference (default 2048) at a scaled copy (longest side at the cap, aspect kept) and restores the originals and removes
the copies in its finally block, so the .blend's images are never modified. smoke_package.py reads the GLB's PNG
headers: a 4096x1024 map exports at 2048x512 and at 512x128 under a 512 cap, a 256x256 map exports as it is, the .blend
images keep their size and no copy is left in bpy.data.images. Builds: yes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:37:50 +02:00
Meta Vens
4f9ada5a6f ship_cc: refuse a cultcache-py that is not the tested version
_libraries reads [project].version from the pyproject.toml beside the cultcache-py source before importing it and raises
ValueError naming the version found and the packages path when it differs from TESTED_CULTCACHE_PY (0.3.0) or the file is
missing. Builds: yes. test_refuses_a_file_with_no_record fails as before (cultcache-py unpack error on a 0-byte file).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:31:46 +02:00
Meta Vens
31d19eae64 Merge eureka/aetheria-release-contact-reveals: reveals end on perception (cut-contact-reveals.r2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:18:17 +02:00
Meta Vens
ee479eba7a test_fe0f_twins: the function test no longer depends on the font already holding twins
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:57:33 +02:00
Meta Vens
8fc19aed94 Emoji font build: add FE0F-less twins of the 15 ligature records TMP cannot match (ruling fe0f-less-ligatures-in-font-build); Eyes' TMP diagnosis; headless GSUB test
The committed font is not rebuilt yet, so test_fe0f_twins.py's first test is red against it; the font lands next. Builds nothing in Unity.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:57:04 +02:00
Meta Vens
3da1622478 Vapour presenter: draw the sim's OpacityAt directly, not divided by the cloud's raw Opacity
OpacityAt is already saturated to 0..1 by the sim, so a 0.3 vent reads thinner than a full
cloud and nothing above full draws thinner. Builds (Unity compile run after).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:53:18 +02:00
Meta Vens
aebf12e195 Emoji routes: Emoji.asset named in TMP's emoji fallback list as well as the global list (ruling emoji-fallback-route); EmojiCheck asserts both routes and prints the font serving each piece of a failing sequence
Keycaps and the other body-font-based sequences now collapse: 25 failures become 13. The 13 FE0F+ZWJ sequences still show three pieces. Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:50:31 +02:00
Meta Vens
26cdd578c1 Merge eureka/aetheria-release-ships-addon-mounts (cut-ships-addon-mounts.s2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:44:13 +02:00
Meta Vens
e1a5c6a1b0 Emoji sequences: liga in the 142 serialized TMP texts (43 prefabs, 2 scenes) and in TMP Settings, written by EmojiFont.EnableLigatures
Every prefab and scene was re-serialized by Unity 6, so each file also carries the editor's own migrations (m_RootOrder, m_ConstrainProportionsScale, m_enableWordWrapping to m_TextWrappingMode, name quoting). Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:37:07 +02:00
Meta Vens
6d2d52c529 EmojiFont, EmojiCheck: OTL_FeatureTag lives in UnityEngine.TextCore; kerning read from the serialized m_enableKerning
Compiles (Unity 6000.3.24f1 batchmode). Fixes the previous commit, which did not.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:36:52 +02:00
Meta Vens
96b255541c Mirror Mount reflects the footprint's cells about the centre line, derived once from the footprint
hull_grid.mirror_position gives the twin Position as grid_w - a - w, so an even-width footprint mirrors to its true
reflection and the cell lookup's tie rule no longer decides a mirror; the twin's object stands in the cell that Position
puts it in, so Package derives the same Position back. test_hull_grid pins the reflection on odd and even grids and
rows of 4 or more cells; smoke_mounts runs footprint widths 1 to 4 at every cell of an even and an odd grid, the
boundary tie, the armour and arc copy, the muzzle's local X, the centre-line threshold, the grid edge and the parent
check, and keeps a mirrored pair of two-cell footprints through Package and the validator. Every commit builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:33:26 +02:00
Meta Vens
bd78401967 Emoji sequences: EnableLigatures writes liga into every serialized TMP text and TMP Settings; EmojiCheck renders every fully-qualified sequence as one visible character
Adds tools/emoji/emoji-sequences.txt (2760 fully-qualified multi-code-point sequences from the pinned emoji-test.txt), written by fetch_emoji_font.py and recorded in the lock. Not compiled yet (first Unity pass follows); the asset changes land in a later commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:22:40 +02:00
Meta Vens
56129b43d5 Package derives no mounts for a ship with no Ship Root, and refuses a framed one whose layout is not loaded
smoke_package's hand-tagged ship has a weapon-mount object, no Ship Root and no loaded
buffer; the first mounts commit refused it. A ship with no frame has no grid to derive
from, so Package leaves its rows alone as before. A framed ship with a mount and an
unloaded buffer is refused with 'Load Layout first'. All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:03:12 +02:00
Meta Vens
d50f54bf53 Release map: refresh 2026-10-12, feedback and loot (body facts RF1-RF9, the sim/present splits)
Imagination imagination-aeth-refresh-feedback-loot, session self-2026-10-11-ag2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:51:46 +02:00
Meta Vens
730a4e5a52 Release map: missile-stats r3 (stat groups as gear-part behaviours) and its body facts MS1-MS9
Replaces "The missile's stats" paragraph and appends the refresh's premise
check, body facts, rationale and downstream notes (Imagination
imagination-aeth-refresh-missile-stats, session self-2026-10-11-ag2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:48:57 +02:00
Meta Vens
a89d885c6b smoke_mounts: an asymmetric footprint shows Mirror Mount turning it
All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:47:44 +02:00
Meta Vens
1660a68a8a Fog Patch prefab carries VapourCloudInstance at the origin and unit scale; ZoneRenderer.CloudPrefab assigned in ARPG
Wired through the Editor in batchmode (component, root pose reset, field assignment); the scene diff is the one
CloudPrefab line, the Editor's unrelated field churn reverted. Builds (Unity compile 0 error CS).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:46:24 +02:00
Meta Vens
42227f3435 Blender add-on weapon mounts: Add Weapon, Add Muzzle, Mirror Mount, Remove Mount; Package derives mounted Position and yaw
hull_grid gains mounted_position, facing_yaw, mirror_rotation and mirror_footprint. The
mount helpers edit the layout buffer and create a tagged weapon-mount object with its row
as a pair; Package derives each mounted row's Position from its object and each mount's yaw
from its row's Rotation, then saves the buffer through _save_layout. The panel gets a
Mounts box and greys a mounted row's x and y. smoke_mounts.py pins the gunboat flank,
derive and remove paths. All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:45:12 +02:00
Meta Vens
b614260607 Release map: package-product r4 body facts (refresh against b6262467)
Imagination imagination-aeth-refresh-package-product, session self-2026-10-11-ag2:
ShipAuthoringStore registers no product type, the product writer, sequencing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:44:38 +02:00
Meta Vens
f1c36b4ccb Vapour clouds are drawn as fog banks: one ZoneRenderer subscription, VapourCloudInstance presenter, DrawAhead for a free body
ZoneRenderer loads and subscribes Zone.Clouds like mines and destroys a bank on removal; VapourCloudInstance
places a Fog Patch brush at DrawAhead.Position(cloud.Body, Lead) and thins its _Depth with OpacityAt. The prefab
and scene wiring follow in the next commit; this one compiles but CloudPrefab is unassigned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:34:50 +02:00
Meta Vens
0af394bd4b Exact-gate departure test: the observer sits where its info per unit light is a power of two (previous commit's test does not pass)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:03:43 +02:00
Meta Vens
ddbd120af0 Pin the departure gate's strictness with a light exactly at the threshold
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:02:54 +02:00
Meta Vens
53ff5f7c01 Unreachability test: the departing ship leaves by the warp path, so its own subscriptions to the observer are not the question
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:23:33 +02:00
Meta Vens
f815406e9e Qualify ReferenceEqualityComparer (a3 commit does not build: ambiguous name)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:22:42 +02:00
Meta Vens
a23a76b608 Step-kill test lights the ship at its death; the unreachability test walks the observer's fields
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:22:12 +02:00
Meta Vens
c212ec0232 Reveal book: no scratch holds a departed entity, a destroyed lit gun is refused at the gate, one IsDestroyed rule, departure and allocation pins
Not verified yet at this commit (build and tests run next).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:20:46 +02:00
Meta Vens
b6262467f0 Merge cut-scenarios-smoke (verdict cut-scenarios-smoke.s2)
Scenarios.cs Tests list: kept WeaponFeel, Pursuit and Crossing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:28:05 +02:00
Meta Vens
336cf3a684 Merge cut-scenarios-crossing (verdict cut-scenarios-crossing.s3)
Scenarios.cs Tests list: kept Pursuit and Crossing both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:27:47 +02:00
Meta Vens
9131cce3b9 Merge cut-scenarios-pursuit (verdict cut-scenarios-pursuit.s1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:27:39 +02:00
Meta Vens
396c02b08f Perceived item destruction ends the reveal in the observer's Sense; moving-subject bearing pinned
Restores the Identified item-end pass and its tests (AnIdentifiedObserverSeesGearDestroyed, the flashing-gun tick case,
the Identified part of SenseAllocatesNothingOnceWarm) that 49ace47f held for this batch, and extends
AnActIsRevealedOnItsOwnTickWhateverTheListOrder to a moving subject (two velocities, both observer orders).
Builds: all commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:58:10 +02:00
Meta Vens
4658fa7af6 RunStartTests: the offered-gear checks read the hulls a product sells
GenerationOffersExactlyTheSoldGearSomeHullCanFit compares against LoadoutGenerator.SoldHulls; GearNoHullCanFitIsOfferedOnlyOnceAHullTakesIt
gives its scratch hull a product, since a hull no product sells is no home. The previous commit (2a943370) left both red (found by the
full run); this one is the head. Commit 2a943370 does not pass the full suite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:51:07 +02:00
Meta Vens
2a943370ab Smoke Test Hull fixes: the home rule reads sold hulls only; command and flank geometry pinned; turret off the starboard line
LoadoutGenerator.SoldHulls is the one definition of the hulls HasHome considers (a hull some product sells); AvailableProducts and the
tests read it, so the product-less test hull gives no gear a home. TheSoldHardpointGearWithNoHomeToday describes production again.
SmokeHullCommandTests pins each added hardpoint's firing arc, armour and shape; ArcsFlanks asserts the flank hulls abeam from the
player's facing within 5 degrees; Arcs' Turret moves to (600,300). Not yet built or run at this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:35:25 +02:00
Meta Vens
49ace47f34 Leave perceived item destruction to batch B: drop the Identified item pass and its tests from this cut
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:06:24 +02:00
Meta Vens
d03b85ea34 ContactRevealTests: departure fixtures put the ship's other light out and show exactly the authored signature
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:05:16 +02:00
Meta Vens
22296ae4eb ContactRevealTests: settle the last flash before the departure signature; identified-observer tick fixture
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:04:34 +02:00