Skip to content

fix(editor): complete consistent editing and document workflows #35

Closed

Description

@FLwolfy

Verified on branch / awaiting merge

Production implementation: dd5979c613b0fe8ebd9f7026f25001ceee9f8cee. Delivered head: dbae93e8f211d45a69cdffdb6afa3a33a0af0fa5; the subsequent diff contains documentation/acceptance evidence only. Exact-head CI: Engine CI and NuGet dependency graph passed; all six checks on this exact head are successful. All applicable acceptance conditions for this issue are verified; unavailable physical/manual device checks are explicitly scoped, not reported passed.

Owner: Feature edits, unified History and actual Panel composition. Implementation commits: fa794a5a, a4d975ab, f7dce89c, 8fd31cee, 2bb4da40.

Evidence: complete report, exact-head delivery attachment, portable test-case/raw-measurement/requirement indexes linked by the report. Specific proof: Workflows: actual Inspector/Scene/Asset/Settings/Shader/Play/export journeys; Contracts: History atomicity and Missing barriers; Products: eight FlappyBird journeys in six configurations.

Commands: official tests/Invoke-EditorUiAcceptance.ps1 Contracts/Workflows/Visual/Lifecycle/Products with SDK-selected independent outputs; complete source/entry preparation; formal InnoEngine.Build scripts --ide for the three companions; tests/Invoke-WikiChecks.ps1; controlled public performance fixtures where applicable. The report records original command owners, TRX/binlogs, negative tests, failures, skips, input hashes and device limits.

Profiles overlap; do not sum their pass counts into a distinct-test claim. Windows-only sharing fixtures and Unix-only filesystem fixtures are scoped to the executing host. Real native contexts/simulated display metrics and hidden product feature journeys are not a claim of physical display, OS IME or manual Mac testing. No BGCS/vendor/package/generated-binding modification, parallel Core system, test hook, IVT or private reflection was used.

Keep this issue Open. PR #26 includes an individual Fixes #35 and will close it only when the user merges to master. No automatic merge or premature master-resolution claim.

Original defect, ownership and accepted work

The following baseline observations describe the issue as opened. The verification above supersedes intermediate pending checkpoints; original failed/negative logs remain preserved. Acceptance checkboxes are checked only after the exact delivery-head verification completes.

Parent and original requirement

Parent: #27. Work item E08 from the approved Editor UI closure plan and its original implementation/acceptance requirements.

Baseline facts and risks at issue creation

Core atomic history and identity selection are implemented, but existing focused tests do not establish every original UI success/failure/cancel/close/reopen journey.

Owner and dependency boundary

Workbench and concrete views compose existing Assets/Scene/Shaders/Settings/Export features and shared History.

Dependencies: #29, #30, #31, #32, #33, #34.

Implementation

  • Exercise every original Workbench, Hierarchy, Browser, Inspector, Component/System, Scene/Game, Shader, Settings and export workflow.
  • Fix only observed contract gaps in their actual owners.
  • Preserve mixed scalar edits, reference distinctions, duplicate component identity and read-only installed sources.
  • Keep domain transactions granular and gestures immediate; no panel-local Undo stack.

Acceptance

  • Separate drags create separate Undo; boolean/create/delete/reorder do not merge.
  • Cancel/selection/save/close/Play/reload boundaries complete the correct gesture.
  • Mid-batch failure restores all applied changes; failed rollback retains owner/payload.
  • Missing barriers preserve the stack and recover automatically.
  • File navigation/selection workflows do not become data Undo.
  • Cover validation/dirty/Apply/Cancel/export progress/cancel/retry and asynchronous retirement.
  • Retain fix(history): preserve transaction state when rejecting non-LIFO completion #13's public non-LIFO rejection regressions.

Failure and lifecycle constraints

Preserve diagnostics, cancellation, atomic rollback/publication, Missing recovery and generation retirement. Reuse Core Events, Identity, IO, Serialization and History. Do not modify BGCS/vendor/generated code or add global/implicit imports, compatibility paths, IVT or private reflection.

Evidence and closure

Commits, exact commands, logs/TRX/data and remaining limits will be added during implementation. Until all acceptance passes this issue remains open. After verification mark Verified on branch / awaiting merge; add Fixes #35 with this issue's actual number to PR #26 only when complete. Close on merge to master, not on branch implementation.

Activity

  1. FLwolfy commented on Oct 27, 2026

    @FLwolfy
    MemberAuthor

    Additional real-product verification on the current working candidate: FlappyBird ran through the actual D3D12 Editor. Play/stop was exercised through the public shortcut and observed toolbar action; the return-to-Edit tooltip, restored scene and populated asset tree/list were captured. Settings density was edited, cancelled, reopened and confirmed unchanged. Normal window shutdown returned exit code 0 and logged complete product resource retirement. Local evidence: products/editor-functional-final.log, products/FlappyBird-functional-final/Logs/EditorBoot.log, e09/flappybird-final-play-stop-browser.png, and e09/flappybird-final-settings-cancel-reopen.png under the recorded evidence owner. This verifies these journeys only; the complete E08 failure/cancel/reopen matrix is not being inferred from them. The issue remains open.

  2. FLwolfy commented on Oct 28, 2026

    @FLwolfy
    MemberAuthor

    Confirmed a real Settings workflow defect through the current Release Editor and normal UI in the independent FlappyBird acceptance copy. I staged an Editor Density change and a Build Output Directory change, then held an exclusive reader on that copy's Settings.Build.inno. Apply changed Settings.Editor.inno from SHA-256 F09C8610... to 8D9CE9DC..., then the Build read failed and the Settings modal was quarantined. This proves partial persistence and loss of retry UI, not merely an unverified risk. Evidence: e08-settings-partial-apply-before.json, products/settings-partial-apply-before.log, e09/settings-partial-apply-before.jpg. I will use the existing Editor History transaction for the whole Apply, preserve drafts until commit, retain original plus rollback diagnostics, and handle expected operational failures locally so the modal remains usable. No second history/rollback protocol or test visibility change.

  3. FLwolfy commented on Oct 28, 2026

    @FLwolfy
    MemberAuthor

    Confirmed Settings defect and candidate verification

    A real Release Editor run reproduced partial Settings Apply: Editor values were persisted before a locked Build settings read failed, then the modal was quarantined. The candidate now groups Editor/Project/Build changes through the existing History transaction. Ordinary failures preserve drafts and permit retry; rollback integrity loss leaves History Faulted and disables further Apply. Settings borrows generation-bound definitions only while its existing reload-admission guard is active. Unexpected Drawer failure releases that transient owner, preserves standard quarantine, and disables reopening until catalog recovery.

    Four real-native public-boundary tests pass in e08-settings/green-official.trx: failure/retry with one Undo/Redo entry; failed rollback retaining Faulted History; 100 open/close cycles with drawn-value collection and reload admission; Drawer failure and catalog recovery. The Drawer regression failed before the correction (red-official.trx). Tests use SDK-selected Editor product properties. No parallel History, events, recovery or identity system was added.

    The 100-cycle test observes values passed to public Drawers; it does not prove collection of private Session state or the complete ALC/resource matrix. Final product/CI and the remaining E08 journeys are still pending. Keep this issue open; no Fixes #35 yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions