diff --git a/HANDOFF.md b/HANDOFF.md index ccc7409..982ab3c 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -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"); // 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