Add frontend production project

This commit is contained in:
gamer147
2026-08-03 11:25:08 -04:00
parent 797c4901cf
commit e2fe660c75
14 changed files with 56 additions and 16 deletions

View File

@@ -106,7 +106,7 @@ S:\Game Hacking\Eushully\Himegari\ ← workspace root (three siblings)
│ ├── opcodes.json GENERATED from opcodes.toml (machine view for the C# VM)
│ └── manifest.json, opcode-coverage.md (opcode-coverage.md GENERATED from opcodes.toml)
├── engine/ DELIVERABLE — the .NET VM core (AgeEngine.sln: Age.Engine / Age.Cli / tests)
├── engine/ DELIVERABLE — the .NET VM/runtime projects and tests (AgeEngine.sln)
│ ├── Age.Engine/Model/ retained graphics state plus separately navigable public
│ render, transition, diagnostic, and persistence contracts
│ ├── Age.Engine/Sys4/ runtime game-root selection, catalog parser, loose-first bounded
@@ -118,6 +118,9 @@ S:\Game Hacking\Eushully\Himegari\ ← workspace root (three siblings)
│ ├── Age.Engine/Persistence/ native S3SD/S4SD + S3RT codecs, shared payload/ReadTextDB,
│ layout-3 numbered state/history/gfx, DAT/STH pair + BMP codec,
│ and profile-owned state
│ ├── Age.Engine.Frontend/ platform-neutral frontend diagnostics/options project: page
│ locator, timeline/trace/step-limit diagnostics, VM/window launch
│ options, and performance-frame logging
│ └── Age.Engine.Text.Windows/ optional exact Windows GDI gray-4 reference backend; kept
│ outside the platform-neutral VM/runtime core
├── native/ authored native runtime boundaries
@@ -147,6 +150,13 @@ surface-transition drawing, raster helpers, and compositor decision logging. `go
Godot input routing, locator/debug hotkeys, debug-scene dispatch, cursor control, native alerts, and
full-width text entry.
`engine/Age.Engine.Frontend/` is the production owner of frontend helpers that do not depend on Godot types.
Both `engine/AgeEngine.sln` and `godot/Himegari.sln` include the project; Godot and `Age.Engine.Tests` consume it
through project references rather than compiling duplicate linked sources. The first owned cluster contains
`PageLocatorState`, `GodotTimelineLog`, `GodotTraceSink`, `StepLimitDiagnosticFormatter`, `GodotVmOptions`,
`PerformanceFrameLog`, and `WindowLaunchOptions`. Movie runtime/decoder helpers remain under `godot/` until their
separate ownership slices.
`godot/GodotAdvHost.cs` retains cross-domain host coordination. Its partial-class companion
`godot/GodotAdvHost.AdvText.cs` owns live/retained ADV text, surface glyph rasterization and caching,
history presentation, message-window alpha, and retained wait-indicator configuration/publication.

View File

@@ -827,6 +827,13 @@ do not mix mechanical moves with semantic changes.
code into a small production project referenced by Godot, tests, and the corpus gate. Retain both existing
solution files because Godot export requires the frontend-local solution.
**Progress (2026-08-03):** the first bounded build-graph slice introduced the platform-neutral
`Age.Engine.Frontend` production project and added it to both existing solutions. Page locator, timeline/trace
and step-limit diagnostics, VM/window launch options, and performance-frame logging moved unchanged from
`godot/` into the new owner. Godot and `Age.Engine.Tests` now use project references, eliminating seven direct
test source links without changing public types, namespaces, behavior, or export configuration. Both solution
builds and runtime validation remain green.
5. **Close repository-policy and storage gaps.** Add an explicit project license, third-party notices and
checksums/provenance for committed binaries, consistent editor/build policy, a pinned .NET SDK, and a
CI entry point built on the same validation driver. Remove the empty workspace-root `.git` directory and
@@ -1181,8 +1188,9 @@ layer's rendering diverges from ADV; save layout.
## 8. Immediate next step
Begin step 4 of the **codebase consolidation** maintenance slice: make the build graph express source ownership
without changing behavior. Introduce the production project boundary for platform-neutral frontend helpers now
linked directly from `godot/` into `Age.Engine.Tests`, starting with the diagnostic/options helper cluster. Replace
source links with project references while retaining both existing solution files and Godot export behavior.
without changing behavior. Move the platform-neutral movie abstractions and runtime support—decoder interfaces,
movie/audio runtime state, movie-surface registry, and RIFF sanitization—from `godot/` into
`Age.Engine.Frontend` next. Replace their test source links while preserving the intentionally internal API through
explicit friend-assembly access; leave FFmpeg interop/decoder ownership for the following slice.
Concrete playthrough blockers may still preempt this bounded maintenance work; the consolidation effort does
not replace Phase B gameplay validation or the open cross-platform gates.