glina workspace

Invocation

glina workspace [list]
glina workspace select <id>
glina workspace remove <id>

Output and retained state

list (the default) prints the glina.workspace.v2 summary: the active asset id and every accepted asset's id, digest, durable path, original source path, import time, structural statistics, variantOf parent (or null), and active marker. It does not print GLB contents or credentials and makes no mutation. An existing v1 manifest remains readable and is written as v2 on the next mutation.

select <id> makes a base asset or variant the active input that verify, preview anim, preview scene and animate read when no file is named. remove <id> takes an asset out of the workspace and deletes the workspace's own copy; the source file is not touched. A base with variants cannot be removed until its variants are removed. Removing the active asset leaves no active asset rather than activating one nobody chose. Both commands print the same summary as list.

State lives under $XDG_DATA_HOME/glina or ~/.local/share/glina and persists across CLI and desktop launches. If the manifest schema or an entry is malformed, Glina refuses rather than guessing. If the active destination is missing, consuming commands refuse and ask for re-import.

Refusals

  • An id the workspace does not hold: the Glina workspace holds no asset named <id>; it holds <ids> (exit 1).
  • select on the asset that is already active: asset <id> is already the active one (exit 1).
  • Removing a base that still has variants: asset <id> has variants <ids>; remove those variants before their base asset (exit 1; no state changes).
  • Any other word after workspace, or select/remove without an id: exit 2 with the forms it takes.

Glina Desktop offers the same three runs under Workspace and accepts a variant parent id while importing a GLB. A refused import shows the report's reason rather than a generic process failure.