Export a design's timeline as a replayable command script (#1045)

timeline.export_script (and solidcraft-cli script) writes a design's history as a command script that solidcraft-cli eval replays into the same design, so a bug that only shows on one design becomes a one-file repro. timeline.add restores one stored feature with its id, names and references, through the same checks a design file gets when it opens.

Closes #886. SychPL's #1078 approached the same issue independently; thanks to both.

Co-authored-by: SychPL <[email protected]>
This commit is contained in:
Lasse LianandSychPL authored and GitHub committed 2026-10-14 09:06:24 -04:00
1 parent 08b6a8fe0f
commit ec8e739aad
17 files changed
+755 -6

No files matched your search

+4 -2
View File
@@ -1,6 +1,6 @@
# Features
SolidCraft's commands by area, generated by `cargo xtask features` from the command registry (`solidcraft-cli commands`). **345 commands.** Planned (registered, not built yet): 6. Every command runs the same way from the toolbar, a script, `solidcraft-cli exec <id> '<json>'`, the control channel and MCP; parameters are in the [command reference](book/src/reference/commands.md) (`cargo xtask book`). Status and plans: [ROADMAP](../ROADMAP.md).
SolidCraft's commands by area, generated by `cargo xtask features` from the command registry (`solidcraft-cli commands`). **347 commands.** Planned (registered, not built yet): 6. Every command runs the same way from the toolbar, a script, `solidcraft-cli exec <id> '<json>'`, the control channel and MCP; parameters are in the [command reference](book/src/reference/commands.md) (`cargo xtask book`). Status and plans: [ROADMAP](../ROADMAP.md).
## Sketch (99)
@@ -270,7 +270,7 @@ SolidCraft's commands by area, generated by `cargo xtask features` from the comm
| Configuration Rule | `config.rule` | – |
| Configuration Rules | `config.rules` | – |
## Timeline (19)
## Timeline (21)
| Command | Id | Toolbar |
|---|---|---|
@@ -293,6 +293,8 @@ SolidCraft's commands by area, generated by `cargo xtask features` from the comm
| Inspect Feature | `timeline.inspect` | – |
| Copy Features | `timeline.copy` | – |
| Paste Features | `timeline.paste` | – |
| Add Recorded Feature | `timeline.add` | – |
| Export Command Script | `timeline.export_script` | – |
## Inspect (12, 1 planned)