S10 — Pins

Earlier docs (and the file name s11-pins.md) called this S11. The screen is now the 10th tab in the strip — the file name is kept for stable links.

Sortable list of every reference Bee has pinned locally, with on-demand integrity checks. Promotes the :pins-check command's write-to-file output into a real screen so operators can browse their pin set, spot the unhealthy ones, and re-check a single pin without walking the whole graph.

Columns

ColumnWhat it shows
REFERENCEThe 32-byte pin reference, shortened to prefix…suffix form
TOTALTotal chunks reachable from the pin (after a check; until then)
MISSINGChunks that should be reachable but are missing locally
INVALIDChunks present but failing integrity validation
STATUSOne of ? unchecked / · checking… / ✓ healthy / ✗ degraded / ✗ check failed: …

Header summary: N pinned ✓ X ✗ Y ? Z sort <mode>. The counts let an operator spot the alert state (red ) without scanning every row.

Keymap

KeyWhat it does
↑↓ / j kMove row selection
EnterIntegrity-check the highlighted pin (single /pins/check?ref=… call)
cIntegrity-check every pin currently unchecked
sCycle sort: ref orderbad firstby size

Sort modes

  • ref order (default) — Bee's response order; matches curl /pins.
  • bad first — unhealthy → check-failed → unchecked → checking → healthy. Surfaces the rows that matter for an operator who suspects local chunk loss.
  • by size — largest pin first by total chunk count. Useful when figuring out which pin set dominates local reserve usage. Pins that haven't been checked yet count as size-0 and go to the bottom.

How this differs from :pins-check

:pins-check walks every pin sequentially and writes the full output to a temp file. It's the right tool when you want a one-shot integrity report you can email or attach to a support thread. Useful but slow on nodes with hundreds of pins.

S11 trades that bulk-walk for interactivity: pick the pin you care about, get its integrity in one call, see the result inline. The two commands are complementary — :pins-check for the audit, S11 for the fix-loop.

What's intentionally out of scope (v1)

  • No pin/unpin actions. Pinning is a write op; the cockpit stays read-mostly. Add pins from swarm-cli pin add and they'll appear here on the next /pins poll (≤ 30 s).
  • No automatic integrity polling. /pins/check walks the chunk graph — too expensive to run on a clock. Operators trigger it on demand.
  • No diff against a previous check. A pin that goes from healthy to degraded shows up the moment you re-check it; the cockpit doesn't keep a history. Use :pins-check for a point-in-time snapshot if you need to compare runs.