Skip to content

superself 0.9.0

Choose a tag to compare

@tonite31 tonite31 released this 25 Aug 04:39
· 49 commits to main since this release
53b7b6f

Superself 0.9.0: attach a directory as one artifact

Superself 0.9.0 lets a report attach a whole directory as one artifact — a bundle — instead of one --artifact flag per file. The record keeps the member list, and every read surface shows the bundle as one row with the one file a person is meant to open.

Attach a built site or a multi-file report in one flag

Run:

self report <work-id> "<summary>" --artifact dist [--entry <file>]

The directory's files are copied into the store under one artifact id, relative paths preserved. The event records a manifest of every member, so artifact list and artifact search answer from the record without opening stored files, and a search hit on any member resolves to the bundle's single row:

a-4k2pq  2026-08-25  my-project  w-xxxxx  dist/ (12 files)

The entry is the file a person opens

self artifact open <id> opens the bundle's entry: the member --entry names, else index.html, index.md, or README.md at the directory's root, else a minimal index the CLI generates and marks as its own. The HTML views link the same entry.

Bounds and refusals that keep the shared store sound

The store is a git repository cloned to every machine the workspace syncs to, so ingestion refuses what would break a clone or misname the record: symlinks and special files inside the tree, member names that collide once case and Unicode normalization are folded, paths that cannot round-trip through the event log, and more than 1,000 brought files or 100 MiB (package the directory into one file instead). Single-file attachment and every existing record are unchanged.

Upgrade after publication

After the v0.9.0 release workflow finishes, install the published package:

npm install -g superself@0.9.0

Evidence

  • PR #363 adds directory attachment as one artifact bundle with an entry and an event-carried manifest.
  • Case table is the reviewed design: 20 rules, 60 cells, one test per cell.
  • Release policy defines the version, tag, and publication path.