Peter Steinberger
019726f2d1
fix: guard invalid avatar bootstrap text
2026-01-22 11:37:29 +00:00
Peter Steinberger
36a2584ac7
fix: allowlist match without local exec resolution
2026-01-22 10:29:36 +00:00
Peter Steinberger
cadaf2c835
feat: add sessions preview rpc and menu prewarm
2026-01-22 10:21:50 +00:00
Peter Steinberger
e389bd478b
fix: keep backslashes in quoted exec paths
2026-01-22 09:58:24 +00:00
Robby
0873351401
fix: update token count display after compaction ( #1299 )
2026-01-22 09:58:07 +00:00
Peter Steinberger
7a283f86a8
fix: omit skills section in minimal prompt
2026-01-22 09:32:49 +00:00
Peter Steinberger
646ea6ef0b
test: use absolute exec path for allowlist
2026-01-22 09:20:38 +00:00
Peter Steinberger
4c8806ad38
Merge pull request #1431 from robbyczgw-cla/fix/subagent-skills-inheritance
...
fix: include skills in minimal prompt mode for subagents
2026-01-22 09:02:28 +00:00
Peter Steinberger
0824bc0236
test: isolate exec allowlist env
2026-01-22 08:58:55 +00:00
Peter Steinberger
0e17e55be9
fix: cache usage cost summary
2026-01-22 08:51:22 +00:00
Peter Steinberger
54e0fc342e
fix: wrap cli banner tagline
2026-01-22 08:50:06 +00:00
Peter Steinberger
f2606a17ba
chore: update a2ui bundle hash
2026-01-22 08:48:09 +00:00
Peter Steinberger
1a4fade2f7
fix: honor Windows Path casing
2026-01-22 08:33:52 +00:00
Peter Steinberger
e344b7df9c
fix: preserve antigravity thinking block types
2026-01-22 08:31:07 +00:00
Robby
256fdcb3cf
fix: include skills in minimal prompt mode for subagents
2026-01-22 08:28:55 +00:00
Peter Steinberger
acdfbee4f9
fix: detect antigravity claude by provider
2026-01-22 08:26:08 +00:00
Peter Steinberger
ff69a9bd9c
fix: sanitize antigravity thinking signatures
2026-01-22 08:17:49 +00:00
Dominic Damoah
91278d8b4e
Merge branch 'main' into feat/mattermost-channel
2026-01-22 03:11:53 -05:00
Peter Steinberger
b748b86b23
fix: canonicalize allowlist paths on Windows
2026-01-22 08:07:55 +00:00
Peter Steinberger
1a8b106f34
style: format agent workspace and prompts
2026-01-22 08:05:55 +00:00
Peter Steinberger
388d302472
fix: carry reply tags across streamed chunks
2026-01-22 08:01:34 +00:00
Peter Steinberger
e0c19607b7
fix: allow MEDIA local paths with spaces
2026-01-22 07:51:09 +00:00
Dominic Damoah
fe77d3eb56
Merge branch 'main' into feat/mattermost-channel
2026-01-22 02:49:17 -05:00
Peter Steinberger
230211fe26
fix: resolve Windows exec paths with extensions
2026-01-22 07:46:50 +00:00
Peter Steinberger
0f4e0cbe5f
test: cover unpaired telegram dm native commands
2026-01-22 07:44:35 +00:00
Peter Steinberger
bc8e5ad6b3
fix: stabilize avatar tests on Windows
2026-01-22 07:24:12 +00:00
Lucas Czekaj
4b3e9c0f33
fix(exec): align node exec approvals ( #1425 )
...
Thanks @czekaj.
Co-authored-by: Lucas Czekaj <lukasz@czekaj.us>
2026-01-22 07:22:43 +00:00
Peter Steinberger
0d37a92c16
fix: remove duplicate loadConfig import
2026-01-22 07:08:13 +00:00
Peter Steinberger
8544df36b8
feat: extend Control UI assistant identity
2026-01-22 07:08:13 +00:00
Robby
3125637ad6
feat(webui): add custom assistant identity support
...
Adds the ability to customize the assistant's name and avatar in the Web UI.
Configuration options:
- config.ui.assistant.name: Custom name (replaces 'Assistant')
- config.ui.assistant.avatar: Emoji or letter for avatar (replaces 'A')
Also reads from workspace IDENTITY.md as fallback:
- Name: field sets the assistant name
- Emoji: field sets the avatar
Priority: config > IDENTITY.md > defaults
Closes #1383
2026-01-22 07:07:53 +00:00
Peter Steinberger
ad6d048934
feat: add update wizard and guard elevated defaults
2026-01-22 07:06:19 +00:00
Peter Steinberger
d19a0249f8
fix: align rolling logs to local time
2026-01-22 07:02:52 +00:00
Peter Steinberger
b573231cd1
fix: prevent exec approval resolve race
2026-01-22 07:01:27 +00:00
AJ
862f34ade7
fix: read account_id from Codex CLI auth for workspace billing
2026-01-22 07:01:10 +00:00
Peter Steinberger
8a20f44228
fix: improve gateway ssh auth handling
2026-01-22 06:54:08 +00:00
Peter Steinberger
d430a3a5c7
chore: update a2ui bundle hash
2026-01-22 06:40:02 +00:00
Peter Steinberger
319b4d02a0
fix: load workspace templates from docs
2026-01-22 06:39:28 +00:00
Peter Steinberger
b63175d822
Merge remote-tracking branch 'origin/main' into feature/agent-avatar-support
2026-01-22 06:27:45 +00:00
Peter Steinberger
6539c09a93
Merge remote-tracking branch 'origin/main' into feature/agent-avatar-support
2026-01-22 06:03:56 +00:00
Peter Steinberger
23ea4a21e0
fix: skip elevated defaults when not allowed
2026-01-22 06:03:23 +00:00
Peter Steinberger
34686027b1
fix: inherit model overrides for thread sessions
2026-01-22 06:03:23 +00:00
Peter Steinberger
36cfe75a0b
test: relax canvas host reload timing
2026-01-22 05:54:00 +00:00
Peter Steinberger
d425f1ebea
test: align envelope timestamp expectations ( #1329 ) (thanks @dlauer)
2026-01-22 05:51:42 +00:00
Peter Steinberger
8580b85f0b
fix: subagents list uses command session
2026-01-22 05:43:50 +00:00
Peter Steinberger
a2981c5a2c
feat: add elevated ask/full modes
2026-01-22 05:41:11 +00:00
Peter Steinberger
a59ac5cf6f
feat: add agent identity avatars ( #1329 ) (thanks @dlauer)
2026-01-22 05:37:15 +00:00
Peter Steinberger
5567bceb66
fix: restore daemon subcommand alias
2026-01-22 05:33:47 +00:00
Peter Steinberger
e0896de2bf
feat: surface repo root in runtime prompt
2026-01-22 05:20:42 +00:00
Peter Steinberger
0f8d0f37fd
Merge pull request #1419 from jamesgroat/fix/chrome-restore-prompt
...
Browser: suppress Chrome restore prompt
2026-01-22 05:17:01 +00:00
Peter Steinberger
4dca662a5d
chore(canvas): update a2ui bundle hash
2026-01-22 04:51:39 +00:00
Peter Steinberger
f02960df26
fix: avoid whatsapp config resurrection
2026-01-22 04:49:56 +00:00
Peter Steinberger
b60db040e2
test: align envelope timestamps with local tz
2026-01-22 04:49:41 +00:00
Peter Steinberger
13dab38a26
fix: retry lobster spawn on windows
2026-01-22 04:31:25 +00:00
James Groat
fd597a796b
Browser: suppress Chrome restore prompt
2026-01-21 21:27:34 -07:00
Peter Steinberger
ff3d8cab2b
feat: preflight update runner before rebase
2026-01-22 04:19:33 +00:00
Peter Steinberger
5424b4173c
fix: localize system event timestamps
2026-01-22 04:15:39 +00:00
Peter Steinberger
30a8478e1a
fix: default envelope timestamps to local
2026-01-22 04:10:06 +00:00
Peter Steinberger
2fc926ab1c
Merge pull request #1329 from dlauer/feature/agent-avatar-support
...
feat: add avatar support for agent identity
2026-01-22 04:09:00 +00:00
Peter Steinberger
1ac1e72a47
Merge pull request #1204 from cpojer/reminders
...
Improve `cron` reminder tool description.
2026-01-22 04:06:50 +00:00
Peter Steinberger
9450873c1b
fix: align exec approvals default agent
2026-01-22 04:05:54 +00:00
Peter Steinberger
5fb6a0fd32
fix: map OpenCode Zen models to correct APIs
2026-01-22 04:02:53 +00:00
Peter Steinberger
a2bea8e366
feat: add agent avatar support ( #1329 ) (thanks @dlauer)
2026-01-22 04:00:07 +00:00
Peter Steinberger
2d583e877b
fix: default exec approvals to main agent ( #1417 ) (thanks @czekaj)
2026-01-22 03:58:53 +00:00
Lucas Czekaj
0c55b1e9ce
fix(exec): derive agentId from sessionKey for allowlist lookup
...
When creating exec tools via chat/Discord, agentId was not passed,
causing allowlist lookup to use 'default' key instead of 'main'.
User's allowlist entries in agents.main were never matched.
Now derives agentId from sessionKey if not explicitly provided,
ensuring correct allowlist lookup for all exec paths.
2026-01-22 03:58:53 +00:00
Dave Lauer
7edc464b82
chore: fix formatting
2026-01-22 03:56:54 +00:00
Dave Lauer
754481716e
feat: add avatar support for agent identity
...
- Add avatar field to IdentityConfig type
- Add avatar parsing in AgentIdentity from IDENTITY.md
- Add renderAvatar support for image avatars in webchat
- Add CSS styling for image avatars
Users can now configure a custom avatar for the assistant in the webchat
by setting 'identity.avatar' in the agent config or adding 'Avatar: path'
to IDENTITY.md. The avatar can be served from the assets folder.
Closes #TBD
2026-01-22 03:56:54 +00:00
Peter Steinberger
0c3d46cb72
Merge pull request #1103 from mkbehr/feat/cron-context-messages
...
feat(cron): Add parameter to control context messages
2026-01-22 03:52:34 +00:00
Peter Steinberger
654f9e5053
fix: cap cron context messages ( #1103 ) (thanks @mkbehr)
2026-01-22 03:52:03 +00:00
Peter Steinberger
0f7f7bb95f
fix: msteams attachments + plugin prompt hints
...
Co-authored-by: Christof <10854026+Evizero@users.noreply.github.com>
2026-01-22 03:37:29 +00:00
Michael Behr
ffbf75d740
update description
2026-01-22 03:37:20 +00:00
Michael Behr
4642fae193
feat(cron): add contextMessages param to control reminder context
2026-01-22 03:37:20 +00:00
Peter Steinberger
472b8fe15d
fix: prevent memory CLI hangs
2026-01-22 03:14:59 +00:00
Peter Steinberger
721737cc77
Merge pull request #1414 from czekaj/fix/discord-exec-resolvedpath-validation
...
fix(exec): pass undefined instead of null for optional approval params
2026-01-22 03:11:26 +00:00
Peter Steinberger
9d22646120
fix: reduce invalid config log noise
2026-01-22 02:48:01 +00:00
Peter Steinberger
f1aa260b0e
test: avoid downgrade prompt in update fallback
2026-01-22 02:44:13 +00:00
Peter Steinberger
2d1d793651
Merge pull request #1373 from yazinsai/main
...
Add auto-refresh polling for debug view
2026-01-22 02:25:24 +00:00
Peter Steinberger
2f47b3f6bd
fix: sync debug polling with route changes ( #1373 ) (thanks @yazinsai)
2026-01-22 02:24:19 +00:00
Peter Steinberger
302bb64457
test: fix await-thenable in signal typing test
2026-01-22 02:20:42 +00:00
Lucas Czekaj
de898c423b
fix(exec): pass undefined instead of null for optional approval params
...
TypeBox Type.Optional(Type.String()) accepts string|undefined but NOT null.
Discord exec was failing with 'resolvedPath must be string' because callers
passed null explicitly. Web UI worked because it skipped the approval request.
Fixes exec approval validation error in Discord-triggered sessions.
2026-01-21 18:14:51 -08:00
Peter Steinberger
47ebe29195
test: stabilize exec approvals path resolution
2026-01-22 02:07:40 +00:00
Peter Steinberger
cc74e0d188
feat(signal): add typing + read receipts
2026-01-22 02:04:59 +00:00
Peter Steinberger
5bf7a9d0db
test: avoid hardcoded version strings
2026-01-22 02:01:11 +00:00
Peter Steinberger
3ad0d2fe23
chore: bump version to 2026.1.21
2026-01-22 01:59:16 +00:00
Peter Steinberger
39073d5196
fix: finish model list alias + heartbeat session ( #1256 ) (thanks @zknicker)
2026-01-22 01:36:58 +00:00
Zach Knickerbocker
7725dd6795
feat: configurable heartbeat session
2026-01-22 01:36:28 +00:00
Peter Steinberger
db61451c67
fix: handle Windows safe-bin exe names
2026-01-22 01:30:06 +00:00
Peter Steinberger
9780748bbb
Merge pull request #1372 from zerone0x/fix/openrouter-tool-call-id-alphanumeric
...
fix(agents): use alphanumeric-only tool call IDs for OpenRouter compatibility
2026-01-22 01:17:16 +00:00
Peter Steinberger
f5cec1dd8b
test: update fuzzy model selection expectations ( #1372 ) (thanks @zerone0x)
2026-01-22 01:16:59 +00:00
Peter Steinberger
7e1a17e5e6
fix: unify exec approval ids
2026-01-22 00:59:29 +00:00
Peter Steinberger
0704fe7dbb
fix: enforce Mistral tool call ids ( #1372 ) (thanks @zerone0x)
2026-01-22 00:43:15 +00:00
Peter Steinberger
7d93de710e
fix: remove setup-token run option in onboarding
2026-01-22 00:42:04 +00:00
zerone0x
d51eca64cc
fix(agents): make tool call ID sanitization conditional with standard/strict modes
...
- Add ToolCallIdMode type ('standard' | 'strict') for provider compatibility
- Standard mode (default): allows [a-zA-Z0-9_-] for readable session logs
- Strict mode: only [a-zA-Z0-9] for Mistral via OpenRouter
- Update sanitizeSessionMessagesImages to accept toolCallIdMode option
- Export ToolCallIdMode from pi-embedded-helpers barrel
Addresses review feedback on PR #1372 about readability.
2026-01-22 00:41:22 +00:00
zerone0x
d0f9e22a4b
fix(agents): use alphanumeric-only tool call IDs for OpenRouter compatibility
...
Some providers like Mistral via OpenRouter require strictly alphanumeric
tool call IDs. The error message indicates: "Tool call id was
whatsapp_login_1768799841527_1 but must be a-z, A-Z, 0-9, with a length
of 9."
Changes:
- Update sanitizeToolCallId to strip all non-alphanumeric characters
(previously allowed underscores and hyphens)
- Update makeUniqueToolId to use alphanumeric suffixes (x2, x3, etc.)
instead of underscores
- Update isValidCloudCodeAssistToolId to validate alphanumeric-only IDs
- Update tests to reflect stricter sanitization
Fixes #1359
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 00:41:22 +00:00
Peter Steinberger
2b254a9b39
fix: refine model directive handling
2026-01-22 00:29:27 +00:00
Peter Steinberger
7eef176afc
fix: warn on unset gateway.mode
2026-01-22 00:21:08 +00:00
Peter Steinberger
f76e3c1419
fix: enforce secure control ui auth
2026-01-21 23:58:42 +00:00
Dominic Damoah
bf6df6d6b7
feat: add Mattermost channel support
...
Add Mattermost as a supported messaging channel with bot API and WebSocket integration. Includes channel state tracking (tint, summary, details), multi-account support, and delivery target routing. Update documentation and tests to include Mattermost alongside existing channels.
2026-01-21 18:40:56 -05:00
Peter Steinberger
cd65e8e755
fix: type gateway lock handle
2026-01-21 23:05:11 +00:00
Peter Steinberger
28e547f120
fix: stabilize ci
2026-01-21 22:59:11 +00:00
Peter Steinberger
05a254746e
fix(gateway): enforce singleton lock
2026-01-21 22:47:18 +00:00
Peter Steinberger
529372f762
Merge pull request #1398 from vignesh07/feat/models-command
...
fix(chat): add /models and stop /model from dumping full model list
2026-01-21 21:54:16 +00:00
Peter Steinberger
3b18efdd25
feat: tighten exec allowlist gating
2026-01-21 21:45:50 +00:00
Vignesh Natarajan
6e044b5f2f
fix(models): include configured providers/models + ignore page with all
2026-01-21 13:14:18 -08:00
Vignesh Natarajan
310f916675
fix(models): handle out-of-range pages
2026-01-21 12:54:02 -08:00
Peter Steinberger
b5fd66c92d
fix: add explicit tailnet gateway bind
2026-01-21 20:36:09 +00:00
Peter Steinberger
45c1ccdfcf
refactor: unify threading contexts
2026-01-21 20:35:12 +00:00
Peter Steinberger
483a50f107
fix: correct nodes exec config typing
2026-01-21 20:32:43 +00:00
Peter Steinberger
31943dcecb
feat: add heartbeat active hours
2026-01-21 20:30:37 +00:00
Peter Steinberger
0d3b8f6ac3
feat: make nodes run exec-style
2026-01-21 20:25:12 +00:00
Peter Steinberger
6492e90c1b
feat: add auth-aware cache defaults
2026-01-21 20:23:39 +00:00
Peter Steinberger
8b8e078ef8
chore(canvas): update a2ui bundle
2026-01-21 20:10:38 +00:00
Peter Steinberger
44a3539ffa
tmp
2026-01-21 20:10:37 +00:00
Peter Steinberger
0daaa5b592
fix: restore 1h cache ttl option
2026-01-21 20:00:32 +00:00
Peter Steinberger
41c9c214fc
fix: drop obsolete pi-mono workarounds
2026-01-21 19:58:19 +00:00
Vignesh Natarajan
41d56c06b9
feat(commands): add /models and fix /model listing UX
2026-01-21 11:53:29 -08:00
Peter Steinberger
9f999f6554
fix: reset cache-ttl pruning window
2026-01-21 19:53:00 +00:00
Peter Steinberger
9f59ff325b
feat: add cache-ttl pruning mode
2026-01-21 19:46:24 +00:00
Echo
c415ccaed5
feat(sessions): add channelIdleMinutes config for per-channel session idle durations ( #1353 )
...
* feat(sessions): add channelIdleMinutes config for per-channel session idle durations
Add new `channelIdleMinutes` config option to allow different session idle
timeouts per channel. For example, Discord sessions can now be configured
to last 7 days (10080 minutes) while other channels use shorter defaults.
Config example:
sessions:
channelIdleMinutes:
discord: 10080 # 7 days
The channel-specific idle is passed as idleMinutesOverride to the existing
resolveSessionResetPolicy, integrating cleanly with the new reset policy
architecture.
* fix
* feat: add per-channel session reset overrides (#1353 ) (thanks @cash-echo-bot)
---------
Co-authored-by: Cash Williams <cashwilliams@gmail.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-21 19:10:31 +00:00
Peter Steinberger
403904ecd1
fix: harden port listener detection
2026-01-21 18:52:55 +00:00
Peter Steinberger
32550154f9
feat(queue): add per-channel debounce overrides
2026-01-21 18:50:55 +00:00
Peter Steinberger
6996c0f330
test: cover history image injection
2026-01-21 18:45:23 +00:00
Peter Steinberger
cf4f1ed03a
fix: persist history image injections
2026-01-21 18:45:23 +00:00
Peter Steinberger
88d76d4be5
refactor(channels): centralize match metadata
2026-01-21 18:21:19 +00:00
Peter Steinberger
f0a8b34198
fix(discord): align wildcard channel matching
2026-01-21 17:56:01 +00:00
Wimmie
64d29b0c31
feat(discord): add wildcard channel config support
...
Add support for '*' wildcard in Discord channel configuration,
matching the existing guild-level wildcard behavior.
This allows applying default channel settings (like autoThread)
to all channels without listing each one explicitly:
guilds:
'*':
channels:
'*': { autoThread: true }
Specific channel configs still take precedence over the wildcard.
2026-01-21 17:56:01 +00:00
Peter Steinberger
9b47f463b7
chore: rename gateway daemon prompts
2026-01-21 17:46:30 +00:00
Peter Steinberger
9605ad76c5
fix: preserve fetch preconnect in abort wrapper
2026-01-21 17:45:58 +00:00
Peter Steinberger
9e22f019db
feat: fold gateway service commands into gateway
2026-01-21 17:45:26 +00:00
Peter Steinberger
4e1806947d
fix: normalize abort signals for fetch
2026-01-21 17:29:46 +00:00
Peter Steinberger
d2a0e416ea
test: align NO_REPLY typing expectations
2026-01-21 17:12:50 +00:00
Peter Steinberger
43afad9f51
fix: start instant typing at run start
2026-01-21 17:12:50 +00:00
Peter Steinberger
cd25d69b4d
fix: harden bluebubbles short ids and fetch wrapper ( #1369 ) (thanks @tyler6204)
2026-01-21 17:09:15 +00:00
Peter Steinberger
c3adc50cb2
Merge pull request #1369 from tyler6204/fix/bluebubbles-gc-guid-resolution
...
BlueBubbles: short ID mapping, action resolution, and threading/typing fixes
2026-01-21 17:06:09 +00:00
Peter Steinberger
fa1bc589e4
feat: flatten node CLI commands
2026-01-21 16:48:42 +00:00
Peter Steinberger
0e003cb7f1
fix: normalize abort signals for telegram fetch
2026-01-21 16:46:58 +00:00
Peter Steinberger
fb164b321e
fix: model picker allowlist fallbacks
2026-01-21 11:22:33 +00:00
Peter Steinberger
884211a924
feat: render approvals tables on write
2026-01-21 11:10:03 +00:00
Peter Steinberger
9bd6b3fd54
feat: show node PATH and bootstrap node host env
2026-01-21 11:06:56 +00:00
Peter Steinberger
dc06b225cd
fix: narrow configure model allowlist for Anthropic OAuth
2026-01-21 11:00:28 +00:00
Peter Steinberger
cdb35c3aae
test: stabilize exec approvals homedir
2026-01-21 10:49:12 +00:00
Peter Steinberger
4e4f5558fc
fix: limit /model list output
2026-01-21 10:47:37 +00:00
Peter Steinberger
8479dc97da
fix: make session memory indexing async
2026-01-21 10:39:00 +00:00
Peter Steinberger
97e8f9d619
fix: add diagnostics cache trace config ( #1370 ) (thanks @parubets)
2026-01-21 10:23:30 +00:00
Andrii
5392fa0dfa
cache trace mvp
...
Added a standalone cache tracing module and wired it into the embedded
runner so you can capture message flow and the exact context sent to
Anthropic in a separate JSONL file.
What changed
- New tracing module: src/agents/cache-trace.ts (self‑contained,
env‑gated, writes JSONL, computes per‑message digests).
- Hook points in src/agents/pi-embedded-runner/run/attempt.ts: logs
stage snapshots (loaded/sanitized/limited/prompt/stream/after) and wraps
the
stream fn to record the real context.messages at send time.
How to enable
- CLAWDBOT_CACHE_TRACE=1 enables tracing.
- CLAWDBOT_CACHE_TRACE_FILE=~/.clawdbot/logs/cache-trace.jsonl
overrides output (default is
$CLAWDBOT_STATE_DIR/logs/cache-trace.jsonl).
- Optional filters:
- CLAWDBOT_CACHE_TRACE_MESSAGES=0 to omit full messages (still
logs digests).
- CLAWDBOT_CACHE_TRACE_PROMPT=0 to omit prompt text.
- CLAWDBOT_CACHE_TRACE_SYSTEM=0 to omit system prompt.
What you’ll see
- One JSON object per line with stage, messagesDigest, per‑message
messageFingerprints, and the actual messages if enabled.
- The most important line is stage: "stream:context" — that is the
exact payload pi‑mono is sending. If this diverges from earlier stages,
you’ve
found the mutation point.
2026-01-21 10:23:30 +00:00
Peter Steinberger
63d017c3af
fix: add node tool failure context
2026-01-21 09:55:10 +00:00
Peter Steinberger
40646c73af
feat: improve exec approvals defaults and wildcard
2026-01-21 09:55:10 +00:00
Peter Steinberger
0693c7804f
test: skip plugin tools in sessions tools test
2026-01-21 09:17:27 +00:00
Peter Steinberger
6c69ea2c91
refactor: centralize sandbox runtime label
2026-01-21 09:07:21 +00:00
Peter Steinberger
1e10dc1d3b
fix: use plugin-sdk exports in bluebubbles
2026-01-21 09:03:09 +00:00
Peter Steinberger
c22a37976d
fix: report sandboxed runtime in status
2026-01-21 08:59:32 +00:00