Skip to content

Latest commit

 

History

History
101 lines (89 loc) · 5.17 KB

File metadata and controls

101 lines (89 loc) · 5.17 KB

Changelog

This project has not tagged a release yet — everything below describes develop branch history. Reconstructed from git log, not hand-maintained during development, so treat it as a summary of what happened, not a promise of exact chronological order within each entry.

[Unreleased] — 0.1.0

Ran a long stabilization phase: fixing and test-covering what already existed before adding features. That phase is now substantively complete (see NEXT.md for current status); the original policy document is archived at docs/history/STABILIZATION.md. See plan.md for the active backlog. Live task counts are tracked in plan.md/NEXT.md, not duplicated here (they went stale the last time they were).

Highlights from the stabilization phase so far:

  • Full XML round-trip test coverage for all 10 primitive types and all N1–N7 schema extensions, including edge cases.
  • MCB binary format round-trip test coverage (base scene + all N1–N7 extension types).
  • XSD validation fixtures for every schema section, including a from-scratch audit that found and fixed 8 real gaps between mc3.xsd and what Mc3XmlWriter.cpp actually writes (object id, layer, per-object <state>, instance material_override/ variants, uv_mapping's real attributes, environment background_texture/skybox_texture, texture name) — plus one genuine round-trip bug found along the way (texture rename was silently discarded on save/reload).
  • Mock-HTTP-server test coverage for the AI Assistant integration (no real network call needed) and real XSD validation of AI-generated scene XML before it can be applied.
  • Editor undo/redo, save/load, auto-save, and dialog-lifecycle test coverage across the whole command surface.
  • A security/robustness pass (S19): confirmed the API key is never persisted to disk or logged, SQLite queries are fully parameterized, and the parser handles hostile inputs (path traversal, a 10MB malformed-XML file, a 10MB texture URI) without crashing or hanging.
  • --version CLI flag and a project version number (0.1.0).

Major features (pre-stabilization)

Chronological by when each landed, reconstructed from git log's lettered commit-message convention:

  • M1 — <include file="…"/>: share definitions/materials/textures across scenes without inlining them.
  • M2 — Model Registry: SQLite-backed library of reusable model definitions, browsable and insertable from the editor.
  • M3 — AI Assistant: Claude API integration — describe a change in natural language, review the generated scene XML, apply it or save individual definitions to the registry.
  • N1–N7 — schema extensions: SVG textures, embedded glTF, Lua scripts, sound/music, triggers, scene states, and a general-purpose meta key/value map. All fully round-tripped (XML, MCB, XSD) and editable. The editor rasterizes SVG textures, previews audio, runs sandboxed Lua on explicit request, fires trigger steps explicitly, and applies scene-state overrides interactively. Bounded Event Preview/Play (SYS-W14-40) additionally dispatches timer bindings, Walk Mode Area enter/exit transitions, and viewport-picked object clicks automatically, each through one isolated, validated document transaction; see MC3_FORMAT.md's per-section status notes.

Earlier feature work

Smaller, more numerous changes grouped by the same lettered convention. Only groups that actually appear in git log are listed — several letters that would sit between these (e.g. AD) either predate this repository's history or were never used as a label.

  • E — editor UX: named layers (hierarchy filter + Properties field), "Export Subtree as Template".
  • F — file/scene operations: mesh-source browse dialog, Export Selection, Merge Scene, configurable auto-save interval, rotating .backup.1/.backup.2 backups, headless screenshot mode, an Export Settings dialog (GLB/GLTF toggle).
  • G — geometry: procedural LOD (3 segment tiers by camera distance) for round primitives.
  • H — advanced editing tools: proportional editing (Gaussian falloff on nearby objects during Move), Scatter Along Curve.
  • R — rendering: 3-point directional lighting for the solid primitive draw pass.
  • S (early) — mc3togltf stabilization: canonicalized the mesh src attribute, fixed plane size (vec3 → canonical vec2), removed a duplicate XML parser from mc3togltf in favor of the shared Mc3 library, added mc3togltf to the top-level CMake build, added XSD validation, warnings for unimplemented primitives/unsupported CSG nodes, rewrote README.md, created MC3_FORMAT.md. (This is a different numbering than the current S0S20 stabilization sections in plan.md — see the note above.)
  • T — tooling/integration: replaced a mc3togltf subprocess call with a direct library call from the editor.

Where to look for more detail

  • plan.md — the authoritative per-task status for the current stabilization effort.
  • NEXT.md — short, operational: current status, current blocker (if any), exact next task.
  • git log — the actual commit history; this file summarizes it, it doesn't replace it.