Skip to content

Commit ebdfbbd

Browse files
committed
Release v0.1.21
Ship binary-safe artifact storage and portal/TUI file handling updates. Refresh system-agent cron defaults, builder/sample docs, changelog, README banners, and workspace package versions for the 0.1.21 release.
1 parent ffa7c3f commit ebdfbbd

59 files changed

Lines changed: 2217 additions & 301 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ Current overlap to preserve unless intentionally changed:
158158
- `t` in the sessions pane opens the rename-title dialog
159159
- `t` in the logs inspector toggles log tailing
160160
- `Ctrl+A` in the prompt opens the attach-file dialog
161+
- `x` in the files inspector deletes the selected artifact after confirmation
161162
- `o` in the files inspector opens the selected file in the OS default app
162163
- `f` in the logs inspector opens the log-filter dialog, `f` in the files inspector opens the files-filter dialog, and `f` in the stats inspector cycles between session, fleet, and users views
163164

@@ -181,6 +182,8 @@ you must also keep [`.github/skills/pilotswarm-tui/SKILL.md`](./skills/pilotswar
181182

182183
For the native TUI files inspector, keep the standard outer inspector shell as the top-level pane chrome. Do not reintroduce a second files-specific top-level shell around the tab body.
183184

185+
Pane headers in the shared UI should stay compact. Keep title text data plain; the portal may use a slim card header, while the TUI should render pane titles without a highlighted header background. When a pane narrows, prefer dropping low-priority title metadata such as session ids or recent-window labels before squeezing content.
186+
184187
Use the `pilotswarm-tui` agent/skill for TUI-specific work. Treat it as the canonical short-form memory for the current TUI design choices and maintenance preferences.
185188

186189
## Builder Agent Templates

.github/skills/pilotswarm-tui/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Do not bypass shared selectors/components with host-only UI logic unless the beh
4040

4141
- Preserve the existing PilotSwarm terminal workflow and information density.
4242
- Pane titles live in borders, not as duplicate content inside panes.
43+
- Keep title run data plain. The portal may use a slim painted card header, while the TUI should render pane titles without a highlighted header background. When panes narrow, drop low-priority title metadata like session ids or recent-window labels before squeezing content.
4344
- Shared selectors are the source of truth for visible state.
4445
- Non-user / non-assistant transcript items render as cards.
4546
- Mouse copy must stay pane-local.
@@ -49,6 +50,7 @@ Do not bypass shared selectors/components with host-only UI logic unless the beh
4950
- Live-updating logs and activity panes should auto-follow only while the user is at the bottom; scrolling upward pauses follow mode until the user returns to the bottom.
5051
- In the sessions pane, `f` opens the session owner filter; keep terminal help text and docs aligned with that binding.
5152
- In the stats inspector, `f` cycles between the session, fleet, and users views; keep terminal and portal behavior aligned.
53+
- In the files inspector, `x` deletes the selected artifact after confirmation; keep terminal and portal behavior aligned.
5254
- In the native TUI, the files inspector should render inside the standard outer inspector shell rather than introducing a second files-specific top-level shell.
5355
- In the portal inspector, reserve a consistent header row height so tabs with header actions and tabs without them start their tab strip at the same vertical position; keep inspector tab/action buttons compact rather than oversized.
5456

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,34 @@
11
# Changelog
22

3+
## 0.1.21 — 2026-04-22
4+
5+
### SDK / Artifact Storage
6+
7+
- **Binary-safe artifact pipeline**`uploadArtifact`, `downloadArtifact`, and `listArtifacts` now carry metadata (`contentType`, `isBinary`, `sizeBytes`, `uploadedAt`, `source`) and preserve raw bytes for binary artifacts instead of forcing UTF-8 text conversion.
8+
- **`write_artifact` binary support** — agents can now write binary artifacts by supplying `encoding: "base64"` with `contentType`; the handler also accepts `content_type` as a compatibility alias.
9+
- **Artifact validation and limits** — binary uploads are validated with `file-type` magic-byte sniffing, reject declared-vs-detected MIME mismatches, and enforce a separate binary size cap via `PILOTSWARM_ARTIFACT_BINARY_MAX_BYTES`.
10+
11+
### Portal / TUI / Shared UI
12+
13+
- **Binary artifact downloads** — the portal download route now returns raw bytes with the stored content type, and the shared browser/runtime transport exposes artifact metadata without forcing binary payloads through text-only preview RPCs.
14+
- **Metadata-aware files inspector** — the shared files browser now stores artifact metadata records, short-circuits binary previews, renders a download-only binary placeholder in the portal, and keeps native download/open flows intact.
15+
- **Files actions and linked items** — the files inspector now supports deleting the selected artifact, and the linked-item picker can open visible `http(s)` URLs alongside artifact downloads.
16+
- **Pane-title cleanup** — shared pane title data stays plain so the portal can paint a compact header strip while the native TUI keeps unhighlighted pane borders; narrow panes now drop low-priority title metadata first.
17+
18+
### System Agents / Management
19+
20+
- **Longer default cron cadences**`sweeper` now defaults to 30 minutes, `resourcemgr` to 10 minutes, `pilotswarm` supervision to 10 minutes, and `facts-manager` curation to 180 seconds by default.
21+
- **Owner-filter guardrails for system sessions** — autonomous system-session discovery now avoids applying owner filters unless explicitly requested, reducing false "missing system agent" conclusions.
22+
23+
### Docs / Builders / Samples
24+
25+
- **Canonical artifact docs refreshed** — the SDK guide, system reference, builder-template docs, and package READMEs now describe binary artifact handling and the download-only browser contract for non-text files.
26+
- **DevOps sample docs refreshed** — the sample now documents that the same artifact handoff flows can carry binary outputs through `write_artifact` using `contentType` plus base64 encoding.
27+
28+
### Tests
29+
30+
- **Artifact regression coverage** — added focused local tests for binary artifact stores, tool handlers, portal download/meta routes, shared file-browser state, and browser/runtime contract checks.
31+
332
## 0.1.20 — 2026-04-18
433

534
### SDK / Inspection Toolset

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ A durable execution runtime for [GitHub Copilot SDK](https://github.com/github/c
66

77
For the fastest first run, start with the [Docker Quickstart Guide](docs/getting-started-docker-appliance.md).
88

9-
**v0.1.20**Agent inspection toolset (`read_agent_events`, fleet/session metric and skill-usage tools), `agent-tuner` system agent, stats-pane key/value tables and scroll-stability fix. See [CHANGELOG.md](CHANGELOG.md) for details.
9+
**v0.1.21**Binary-safe artifact uploads/downloads, metadata-aware portal/TUI file handling, linked-item URL opening, and longer default system-agent cron cadences. See [CHANGELOG.md](CHANGELOG.md) for details.
1010

1111
## Builder Agents
1212

docs/builder-agents.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ Builder templates should assume:
8383
- if an app needs a custom model catalog, check in `.model_providers.example.json`, create a local gitignored `.model_providers.json` from it, and keep provider keys in `.env` / `.env.remote`
8484
- builder templates should scaffold both `.env.example` and `.model_providers.example.json` from PilotSwarm's own example-file shape, then create local `.env` / `.model_providers.json` copies and add those real files to `.gitignore`
8585
- Azure deployment guidance should prefer `kubectl create secret generic ... --from-env-file=...` when semicolon-bearing values such as Azure Storage connection strings are involved
86+
- builder guidance should treat `write_artifact` / `export_artifact` as the canonical text-and-binary artifact path, using `contentType` plus base64 encoding for binary files and documenting download-only browser behavior for non-text previews
8687

8788
## Maintenance Rule
8889

docs/design-default-agent.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,14 +152,14 @@ Your primary job is to keep the runtime clean by periodically scanning for
152152
and deleting completed, failed, or orphaned sessions.
153153
154154
## Default Behavior
155-
1. Every 60 seconds, use scan_completed_sessions (graceMinutes=5) to find stale sessions.
155+
1. Every 30 minutes, use scan_completed_sessions (graceMinutes=5) to find stale sessions.
156156
2. For each stale session, use cleanup_session to delete it.
157157
3. Log a brief summary of what was cleaned up.
158-
4. Use the wait tool to sleep for 60 seconds, then repeat.
158+
4. Use `cron(seconds=1800, reason="scan for stale sessions and prune orchestration history")` to keep the recurring schedule active.
159159
160160
## User Configuration
161161
Users may chat with you to adjust:
162-
- Cleanup interval (default: 60s)
162+
- Cleanup interval (default: 30m)
163163
- Grace period before deletion (default: 5 min)
164164
- Whether to include orphans (default: yes)
165165
- Pause/resume cleanup

docs/keybindings.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ These keys work whenever focus is not in the prompt editor.
1717
| `n` | Create a new session |
1818
| `Shift+N` | Open the model picker before creating a session |
1919
| `r` | Refresh sessions and visible data |
20-
| `a` | Open the linked-artifact download picker |
20+
| `a` | Open the linked-item picker for current chat artifacts and visible URLs |
2121
| `m` | Cycle inspector tab (`sequence``logs``nodes``history``files``stats`) |
2222
| `[` / `]` | Resize the main split |
2323
| `c` | Cancel the selected session |
@@ -72,6 +72,7 @@ These keys work whenever focus is not in the prompt editor.
7272
|-----|--------|
7373
| `j` / `k` | Move file selection |
7474
| `f` | Open the files-filter dialog (`Selected session` vs `All sessions`) |
75+
| `x` | Delete the selected artifact (with confirmation) |
7576
| `v` | Toggle fullscreen files mode |
7677
| `o` | Open the selected file in the OS default app |
7778

@@ -82,6 +83,7 @@ These keys work whenever focus is not in the prompt editor.
8283
| `j` / `k` | Scroll preview |
8384
| `Ctrl+D` / `Ctrl+U` | Page preview down / up |
8485
| `g` / `G` | Jump to preview top / bottom |
86+
| `x` | Delete the selected artifact (with confirmation) |
8587
| `v` | Toggle fullscreen files mode |
8688
| `Esc` | Exit fullscreen files mode |
8789
| `o` | Open the selected file in the OS default app |
@@ -113,7 +115,7 @@ Notes:
113115
| model picker | `j/k`, arrows, `Enter`, `Esc` |
114116
| session agent picker | `j/k`, arrows, `Enter`, `Esc` |
115117
| session owner filter | `j/k`, arrows, `Space`, `Esc` |
116-
| linked-artifact picker | `j/k`, arrows, `Enter`, `Esc`, `a` |
118+
| linked-item picker | `j/k`, arrows, `Enter`, `Esc`, `a` |
117119
| log/files filters | `Tab` / `Shift+Tab`, `j/k`, arrows, `Enter`, `Esc` |
118120
| rename dialog | type text, `←/→`, `Home`, `End`, `Backspace`, `Enter`, `Esc` |
119121
| attach-file dialog | type path, `←/→`, `Home`, `End`, `Backspace`, `Enter`, `Esc` |

0 commit comments

Comments
 (0)