Update HANDOFF.md: editor-UX batch done on dev, awaiting eye-check

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Homer
2026-07-10 21:02:10 +02:00
parent c47efa876f
commit 775ba8a8d2
+38 -4
View File
@@ -5,7 +5,19 @@ captures where we are, how we work, and exactly what to do next. Authoritative
roadmap is `PLAN.md`; project rules are `CLAUDE.md`; this is the "current
state + how to continue" snapshot.
_Last updated: 2026-06-17. **`main` and `dev` are aligned.** **Stage 9 — Physics
_Last updated: 2026-07-10. **`dev` is 4 GUI commits ahead of `main` — the whole
Stage-10 editor-UX batch is DONE and on `dev`, awaiting the maintainer's
eye-check** (New Script button, open-script-in-editor + External Editor
preference, native rfd folder picker on New/Open Project, Unity-style file
explorer in the Project panel). Pure-logic groundwork (AssetDatabase
uid-preserving file ops `move_asset`/`move_folder`/`delete_asset`, whole-tree
`scan`, script template/creation helpers, Rust-1.97 lint fixes) is already on
`main`. After the maintainer approves the batch:
`git checkout main -q && git merge --ff-only dev -q && git push origin main && git checkout dev -q`.
That closes Stage 10 (parked: editor-authored joint components need a
serializable entity-reference type). Next up per PLAN.md: Stage 11._
_Older status (2026-06-17): **Stage 9 — Physics
is ✅ COMPLETE on `main`.** **Stage 10 — Scripting, Live Reload & Editor Terminal:
core ✅ on `main`** (all eye-checked & approved 2026-06-17 in the `untitled`
project): the `oxide-script` crate (`Script` + `.rhai` loader + sandboxed
@@ -194,6 +206,27 @@ registry.register_reflected::<Timer>("Timer"); // editor + scripts
### Remaining for Stage 10
**The editor-UX batch below is ✅ DONE (2026-07-10) — all four items are on
`dev` as separate commits awaiting one eye-check pass** (details in each
commit message + PLAN.md "Editor-UX follow-ups" + `docs/assets.md` /
`docs/scripting.md` / `docs/projects.md`):
| Piece | Commit | What to eye-check |
|-------|--------|-------------------|
| New Script button | `4f1e9a4` | Script inspector: name + creates/assigns a `.rhai`; Enter submits; undo detaches |
| Open script in editor | `d08bee1` | ✏ Edit + Project-panel double-click; External Editor pref in Preferences; $EDITOR opens in a Terminal tab |
| Native folder picker | `48003ff` | Browse… on New/Open Project — test on **both Wayland and Xorg**; UI keeps rendering while the dialog is up |
| File explorer | `c47efa8` | Breadcrumbs, New Folder, rename/delete menus, drag-to-move, OS drag-in import, double-click open |
Engine-side groundwork already on `main`: `AssetDatabase::move_asset`/
`move_folder`/`delete_asset` (uid-preserving, so renames/moves never break a
saved `AssetRef`), whole-tree `scan`, `editor/src/assets.rs` script
template/creation helpers, `editor/src/explorer.rs` (unit-tested behavior
layer). Note: the build machine's toolchain is Rust 1.97 (rustup, user-local
`~/.cargo/bin` — may need `export PATH="$HOME/.cargo/bin:$PATH"`).
**Historical notes (already on `main` before this batch):**
**1. Richer script API — ✅ DONE, on `main`.** Scripts now `spawn_entity()` /
`spawn_entity(name)`, `despawn(e)`, and `add_component`/`set_component`/
`remove_component` on any entity, plus `entity()` for their own. Implemented as a
@@ -206,9 +239,10 @@ reserved word, hence the longer name). Component edits go through RON, closing t
last PLAN round-trip criterion. Headless tests in `host.rs`/`bridge.rs`; docs in
`docs/scripting.md` ("Spawning entities and editing components").
**2. Maintainer's editor-UX batch (GUI → `dev` + eye-check).** Details in
PLAN.md "Editor-UX follow-ups" + [[editor-file-explorer-preference]]. The
maintainer asked for these after the terminal work:
**2. Maintainer's editor-UX batch — ✅ DONE 2026-07-10, on `dev` (see the
table above; awaiting eye-check).** Original ask, for context — details in
PLAN.md "Editor-UX follow-ups". The maintainer asked for these after the
terminal work:
- **"New Script" button** on the `Script` inspector — write a `.rhai` template
into `assets/scripts/`, register it in the db, auto-assign it to the component.
There is **no in-editor script creation today** (scripts are authored as