aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-12 22:05:55 +0200
committeruser <user@clank>2026-08-12 22:05:55 +0200
commit939748a62ce72dbdd8dfc8edd7c40ca5891439bf (patch)
treef59ac6335bd7cf651aff240ee628a6778e607ba5 /docs
parentsl0p: carry pane and tab purposes over the wire (diff)
downloadsl0ppi-939748a62ce72dbdd8dfc8edd7c40ca5891439bf.tar.gz
sl0ppi-939748a62ce72dbdd8dfc8edd7c40ca5891439bf.tar.xz
sl0ppi-939748a62ce72dbdd8dfc8edd7c40ca5891439bf.zip
docs(cli): record the fork gap the design turned up
Runtime new-tab dropped purposes until 5873374; the design depends on it, so the dependency is written down rather than assumed. Also notes the single-line KDL terminator trap, which cost a debugging round.
Diffstat (limited to 'docs')
-rw-r--r--docs/cli-design.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/cli-design.md b/docs/cli-design.md
index 00650fd..f5d4168 100644
--- a/docs/cli-design.md
+++ b/docs/cli-design.md
@@ -152,6 +152,22 @@ Absorbing `pir` into `sl0ppi agent --resume` (D10) removes the `python3`
dependency. `fzf` then becomes either a declared external dependency or an
internal picker.
+## Fork changes this design required
+
+Designing against the fork turned up one real gap, found by integration-testing
+rather than reading:
+
+- **purposes were dropped by runtime `new-tab`** (`sl0p: carry pane and tab
+ purposes over the wire`). `TiledPaneLayout`/`FloatingPaneLayout` had no
+ protobuf `purpose` field, so a layout sent as an Action lost every purpose it
+ declared. Session-creation layouts kept theirs, which is why the feature
+ looked fine until an orchestrator tried to add a tab. Both protobuf schemas
+ now carry it, sanitised on ingest.
+
+Also worth recording, because it costs an afternoon otherwise: **KDL nodes on a
+single line need `;` terminators**. `tab x { pane }` fails to parse; the
+generator emits multi-line KDL, which sidesteps it entirely.
+
## MVP scope
1. discovery + slug + `list-tabs --json` diff (the idempotency core)