Skip to content

fix(objects,viewport): spell-book field collapse + resize hardening - #31

Merged
StephenSHorton merged 1 commit into
mainfrom
fix/editor-bugs
Jun 2, 2026
Merged

StephenSHorton merged 1 commit into
mainfrom
fix/editor-bugs

Conversation

@StephenSHorton

Copy link
Copy Markdown
Owner

Spell-book object-data field collapse (confirmed fix)

A Spell Book ability's data fields (spb1 Spell List, spb2, spb3 Min, spb4 Max, spb5 Base Order) are distinct FourCCs sharing one SLK column name ("Data"). The merged-view + get path keyed by column name, so they collapsed — setting one overwrote all. Now shared columns key by FourCC in applyOverrides/applyLevelOverrides/getObject. The on-disk shadow already keyed by FourCC, so existing maps are intact on disk. Added SharedCols to ObjectMetadata + TestSpellBook_DataFieldsDoNotCollapse. Verified live: setting spb1/spb3/spb4 to distinct values now stays distinct.

Viewport resize hardening (candidate — root cause not reproduced)

The agent-console-resize distortion could not be reproduced (aspect only scales horizontally; terrain + instances share one matrix), but these are safe improvements: BridgeConsole flex-shrink:0, exact-equality aspect skip, restored full-canvas viewport after the selection-outline pass.

Verify: go vet, go test ./internal/forge/..., npm run check, wails build all green.

Ships as v1.0.2.

🤖 Generated with Claude Code

Object editor — a Spell Book's data fields (spb1 Spell List / spb2 Shared
Cooldown / spb3 Min / spb4 Max / spb5 Base Order) are distinct FourCCs that
share ONE SLK column name ("Data"), so the merged-view + get path collapsed
them onto a single slot — setting one overwrote all four. Key shared columns
by FourCC in applyOverrides/applyLevelOverrides/getObject (the on-disk shadow
already keys by FourCC, so existing maps are intact on disk). Adds a SharedCols
set to ObjectMetadata + TestSpellBook_DataFieldsDoNotCollapse regression test.

Viewport resize hardening — the agent-console-resize distortion could NOT be
reproduced (aspect changes only scale horizontally; terrain + instances share
one view-projection matrix), but these are safe correctness improvements:
- BridgeConsole gets flex-shrink:0 so it honors its drag height.
- camera.setAspect skips only on exact equality (no aspect lag mid-drag).
- instance-outline restores the full-canvas gl.viewport after its pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@StephenSHorton
StephenSHorton merged commit d6a8181 into main Jun 2, 2026
0 of 2 checks passed
@StephenSHorton
StephenSHorton deleted the fix/editor-bugs branch June 2, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant