Skip to content

Overseer log

The verification record for the overseer camera, revision by revision, and the client fixes that DorfCraft's playtests turned up, oldest first. Each entry says what ran, on which server, game and Godot version, and what it did not establish.

Earlier flat-cell GPU verification, 6 October 2026

These measurements and frames describe the superseded tile prototype. They are not acceptance results for the world-geometry renderer.

The authorised render-service pass used its shared GPU lock, with gpu-free clear beforehand: RTX 3090, Godot 4.5.1, Luanti 5.17.0, Mineclonia release 38561, 1280 by 720, verified High settings. The native library hash recorded by the service was e6e4aa25a9ae8fa7. Medium failed its startup profile check because view range read back as 12 instead of 8; these results do not claim Medium performance acceptance.

Frames covered levels -1, 0 and 2, panning to the claim edge, level -40 outside the claim, and zooming beyond the supplied 63 by 63 rectangle. Six audited cases kept the ordinary camera's mask at zero and the viewport's own world enabled. Transitions cleared the previous geometry and rejected an injected previous-layer reply. The service reported no shader errors. A final frame showed the ordinary world after exit; the camera mask, UI visibility and pointer capture matched their saved values.

The ordinary map cache held both concealed diamond and a lava cave. Their observation cells remained unknown, and 5 by 5 pixel patches at both projected positions were exactly black. Patches beyond the claim and supplied rectangle were also black. The out-of-claim level had no terrain geometry and its entire map below the controls was black.

Live render-time measurements of the isolated viewport, after discarding 120 initial samples, were:

Case Samples Median GPU ms p95 GPU ms
Floor, level -1 1,346 0.101 0.383
Upper, level 2 1,064 0.103 0.392
Concealed cave, level 0 1,108 0.102 0.385

This is a small fixture and measures only the overseer viewport, excluding main-viewport composition, UI, CPU observations and network latency. It is not the full 64 by 64, eight-level Medium performance acceptance run. Frames, service settings sidecars, observation audits and the measurement summary are under /tmp/dorfcraft-overseer/frames/.

That prototype had patchy knowledge coverage across open floors from the server's sparse spherical sight rays. The current server also sweeps every standing-level cell in a disc, nearest first; coverage grows over time. Stock-client visual checks and the larger performance run are outstanding.

Continue to use tools/goanna-render for GPU frames and timing, following docs/agents/agent-interfaces.md and obtaining the maintainer's permission for shared GPU time.

World geometry verification, 6 October 2026

Godot 4.5.1 dummy renderer, local rebuilt Goanna, Luanti 5.17.0 Flatpak and Mineclonia release 38561:

  • 20 structural camera assertions passed, including active scene teardown.
  • 17 live assertions in project/tests/overseer_world.gd passed: real cube, slab and rotated stair meshes, world shaders, concealed ore exclusion, native layer delivery, construction, mining, moving/animated actors, entity hiding at an unserved level and restoration on exit.
  • The same camera stayed open while a worker fetched stock, built two stone-brick blocks, and mined onward to x=8. The server sent updated observations and the view queued the changed world meshes.
  • Nine vanilla fallback and reconnect assertions passed.
  • Two lava regression assertions confirmed the ordinary cache contained concealed lava and that identical supplied observations produced identical flow and shoreline attributes over different cached terrain.

Run the live world suite against the same opt-in scratch server described above. It calls /overseer_world to prepare shaped terrain and a stocked container. Do not use that test fixture in a play world.

A CPU-only render-service pass used verified llvmpipe, High settings and 960 by 540 frames. Real terrain shapes, textures and the worker model were visible. The ordinary camera mask remained zero and the mesh queue drained. A 5 by 5 pixel patch at the concealed ore was exactly black. Three server assertions also rejected construction without manage permission, on unknown ground and with an invalid material. The service reported no shader errors. The frame and audit are under /tmp/dorfcraft-overseer/live-world/frames/detail/ and /tmp/dorfcraft-overseer/live-world/detail-audit.json. The subsequent lava isolation change is covered by the headless regression, not this frame. Software frames do not establish GPU performance.

The GPU was occupied during the initial world-geometry revision. A later GPU check used natural terrain, as recorded below. The full 64 by 64, eight-level performance run remains outstanding.

Natural terrain GPU verification, 6 October 2026

A fresh Mineclonia v7 world, seed 1100, replaced the earlier stone-floor fixture. Its generated grassland, slopes, flowers and trees were left intact; the fixture added one stockpile chest and two workers. The render service used --floor '', checked gpu-free and held the shared lock for one RTX 3090 client. Godot 4.5.1, Luanti 5.17.0, Mineclonia release 38561, verified High settings and 1280 by 720 frames were used.

Natural vegetation exposed two bugs. Observation rays treated grass and flowers as opaque, leaving their ground black, and the entity mask hid workers in known plant cells. Thin, non-walkable, sunlight-propagating plants now expose their ground and pass sight rays. Their known cells also admit actors. Solid terrain, walkable leaves, water, glass and unknown cells retain conservative concealment. Forty server assertions and eight live assertions in tests/overseer_foliage.gd passed.

Workers moved and built five stone-brick blocks from stock during an open 127-second camera session; geometry and order overlays updated live. Soil excavation was accepted but labour refused it with too_hard, from its fixed stone-pick calculation. Successful soil excavation is not claimed. A chest's separate entity model is also still missing from the slice, although it appears in the ordinary view.

The final audit had 64 observed plant cells with no missing ground. A cached air-over-grass column at Luanti (15, 12, -12) remained unknown in the layer and its projected 5 by 5 pixel patch was black. The slice kept its own world and the ordinary camera mask was zero. Exit restored the mask and UI. There were no reported shader errors. The service was stopped and released the shared lock after verification.

The isolated viewport measured 2.54 ms median GPU time and 6.48 ms p95 over 1,313 samples, excluding the first 120 recorded samples. This is not total frame time or the full 64 by 64, eight-level performance acceptance run.

Frames, settings and audits are under /tmp/dorfcraft-overseer/natural/: frames/landscape/default/landscape.png is the ordinary view; frames/corrected/default/ has the construction before/after pair; and frames/completed/default/overseer.png uses the final vegetation fixes. summary.json records the final concealment and timing checks.

Memory, depth and plant checks, 6 October 2026

The rebuilt native library and Godot 4.5.1 passed 24 headless camera assertions and 14 live actor/mesh assertions against Luanti 5.17.0 with Mineclonia release 38561. The latter cover hiding actors in remembered cells, showing actors down visible shafts, an intervening solid wall, real lower-slice geometry and horizontal plantlike cards. DorfCraft's server passed 49 assertions for observation and order boundaries.

The larger payload revealed that Luanti omits base64 padding. The client now restores it before calling Godot's decoder, with an unpadded chunk regression. The GPU check used the shared render service and its lock; frames and audits are in /tmp/dorfcraft-overseer/fog/. Server CPU units still occasionally exceed labour's hard budget; the large eight-level performance target remains unverified.

The final RTX 3090 service capture used verified High settings at 1280 by 720. Real cobble floors at depths one, one, two, three, five and eight showed accumulated blue-white haze, alongside overhead-facing grass and flowers. Unavailable space sampled RGB (67, 74, 81), distinct from the unexplored (0, 0, 0). The final capture had no new shader or snapshot reassembly errors. Nine vanilla fallback/reconnect checks also passed. The service was stopped and gpu-free confirmed no clients or driver errors. DorfCraft's overseer document records the remaining CPU limitation.

Discovery and shaft shadow verification, 6 October 2026

Godot 4.5.1, rebuilt Goanna, Luanti 5.17.0 Flatpak and Mineclonia release 38561: 30 camera assertions and 15 live actor/mesh assertions passed. The server passed 58 assertions, including long-range discovery, concealment behind a distant wall, movement during a survey and known shaft walls. DorfCraft's default sight range is now 192 nodes. Discovery is incremental; this does not establish large-fortress performance. Some layer and sight work units still exceeded labour's 4 ms hard budget in the GPU scene.

The RTX 3090 render service held the shared lock for the High, 1280 by 720 comparison. Known shaft walls cast shadows across the actual cobble floors. At time fractions 0.35 and 0.65 the floor shadows moved from the right side to the left. Both captures used the same open view and sun energy 1. The sun directions were (0.721, 0.693, 0) and (-0.721, 0.693, 0). No lighting code adjustment was needed for this movement; the added tests guard the sun and moon direction updates. The captures reported no shader errors.

The preceding noon, sunset and midnight comparison only established colour and exposure changes: the noon sun and midnight moon were both overhead, and both direct lights had zero energy at the selected sunset time. Those images were insufficient evidence of shadow movement. The fixed inner edge and depth haze are not cast shadows. Sky-fill emission reduces contrast but did not prevent the morning/afternoon shadows from appearing.

Frames and light directions are in /tmp/dorfcraft-overseer/shadow-pass/; the earlier depth, exposure and actor checks are in /tmp/dorfcraft-overseer/depth-pass/. See DorfCraft's docs/overseer.md for coverage measurements and the remaining CPU budget limitation.

Mountainside core loop verification, 6 October 2026

Godot 4.5.1 dummy rendering, Luanti 5.17.0 Flatpak and Mineclonia release 38561: 32 camera checks, 83 server checks and 12 live core-loop checks passed. project/tests/overseer_loop.gd uses actual native planning requests and a real worker while the view stays open. The worker dug a two-high tunnel and a side bedroom, felled a tree, harvested a berry bush, built a wall, replaced the floor below, and installed stairs, a bed and a door. The room system then recognised a usable bedroom.

The camera tests include material filtering and facing controls. Server checks include headroom bounds, floor cancellation, protected furniture footprints, all bed facings, door opening, automatic stair corners, renewable bush harvesting, drops and wide trunks. The final stair-corner and wide-trunk changes were exercised in the server action suite.

Construction uses stocked finished items; the test did not craft them. Furniture adapters currently cover Mineclonia beds and doors, and the harvest adapter covers ripe sweet-berry bushes. Layer assembly still exceeded the server's 4 ms hard work-unit budget in the small live scene. No GPU client was started for this pass. Logs are under /tmp/dorfcraft-overseer/core-loop/.

Local modpack activation, 7 October 2026

A new DorfCraft world failed because the local launcher treated a selected modpack directory as one mod. It enabled the similarly named founding mod without labour or calendar. local_server.gd now expands nested packs into declared leaf mod names, including legacy modpack.txt packs. World options restore the menu's pack selection when all its members are enabled.

tests/local_server_modpacks.gd passed five checks under Godot 4.5.1's dummy renderer: nested members, declared names, restoring selections and removing members when deselected. The installed DorfCraft package resolved to 35 members and loaded on Luanti 5.17.0 with Mineclonia 38561 in a scratch world. No GPU or client rendering was used for this launcher test. The existing DorfCraft playtest and the new-world activation failure are distinct paths; this fix does not claim to diagnose every reported loading or input issue.

Primary-button item use, 7 October 2026

The current native interaction path ignored ItemDefinition.usable and sent digging or punching packets for items with on_use. It now sends INTERACT_USE on the primary-button press, including when pointing at air. Holding the button does not repeat the callback. Switching from digging to such an item cancels the dig and waits for a fresh press before using it.

tools/test/test-item-use.py --dorfcraft /path/to/DorfCraft runs a disposable Mineclonia world through the installed Luanti Flatpak and Godot's dummy renderer. Its fixture wraps the real callbacks to count packet delivery; project/tests/item_use.gd drives step_interact, rather than opening the mode through a chat command. Godot 4.5.1, Luanti 5.17.0 and Mineclonia 38561 passed 21 checks: designation corners, the room form, the chisel's material validation, opening an Overseer session with an air click, restoring interaction on exit, held-button and tool-switch behaviour, and ordinary pickaxe mining. This is an input/protocol test, not a new rendered-camera or completed-engraving test. No GPU client was started.

The rebuilt native library requires restarting Goanna. This establishes a missing primary-button path in the current client; it does not establish which input or client build was used in the earlier successful playtest.

Terrain replacement and dwarf pose checks, 7 October 2026

A whole BLOCKDATA replacement refreshed only its own mesh. The assumption that content edits always arrive as individual node packets was false: server-side voxel writes can replace a block without those packets. A changed replacement now invalidates all six loaded face neighbours, just as the first arrival does. Identical resends still skip mesh invalidation.

tools/test/test-block-updates.py runs a Mineclonia fixture which removes a sealed dark room above a mapblock boundary through VoxelManip. Under Godot 4.5.1's dummy renderer, Luanti 5.17.0 and Mineclonia 38561, the old client kept zero floor vertices after the cut; the rebuilt client produced 64. The retained test also checks that the room became air and the floor node stayed stone. Both the scratch reproduction and the saved runner passed with the fix. This establishes one missing-face path, not every possible cause of the maintainer's screenshot. Logs: /tmp/overseer-tree-head/ and /tmp/goanna-block-updates-j0klg4j4/.

A separate dummy-client probe kept exactly two dwarf skeletons through three cycles of sleeping, waking, appearance changes and entity replacement (12 checks). It did not reproduce the reported apparent duplicate bodies. DorfCraft corrected an independently verified server head-bone offset; its docs/dwarf-body.md records that fix and the server tests, including a failure in the broader combat suite. Neither test used the GPU or the maintainer's running world.