Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
246 commits
Select commit Hold shift + click to select a range
40a704a
fix: persist canonical user identity issuers (#1295)
ColeMurray Aug 5, 2026
78f14cc
fix: limit Vercel image build tags (#1297)
open-inspect[bot] Aug 6, 2026
f5ce4c7
feat: consolidate Better Auth onto the canonical identity registry (#…
ColeMurray Aug 6, 2026
8580b40
Prevent terminal hydration drift and improve settings semantics (#1237)
open-inspect[bot] Aug 6, 2026
c9831eb
Prevent terminal hydration mismatch and improve Fast Refresh (#1256)
open-inspect[bot] Aug 6, 2026
0371336
Fix terminal hydration and form semantics (#1269)
open-inspect[bot] Aug 6, 2026
3a2bec2
test: cover Modal build sandbox validation (#1255)
open-inspect[bot] Aug 6, 2026
be90d1a
fix(slack): split long agent notifications instead of truncating them…
duboff Aug 7, 2026
e486733
test: fix Modal timeout fixture callbacks (#1307)
ColeMurray Aug 7, 2026
1f57421
fix(slack): preserve accessible notify fallback (#1306)
ColeMurray Aug 7, 2026
66a03ed
cleanup: drop build_timeout_seconds rename-skew shim (#1310)
ColeMurray Aug 7, 2026
3152ec5
Clarify shared artifact schema ownership (#1309)
ColeMurray Aug 7, 2026
988c2da
Move session spawn context into control plane (#1314)
ColeMurray Aug 7, 2026
4e93d6e
fix(slack): bound the repo catalog fetch on the mention path (#1292)
duboff Aug 7, 2026
0345dfb
fix: log deferred session background failures (#1084)
ColeMurray Aug 7, 2026
36271c2
Adopt shared sandbox event imports (#1315)
ColeMurray Aug 7, 2026
b63d017
Add SCM pull request label settings (#1317)
ColeMurray Aug 7, 2026
b28cfa7
fix(slack): keep fenced sections within character limit (#1322)
ColeMurray Aug 8, 2026
899ab0d
fix(linear-bot): honor owner/repo replies to the repository clarifica…
rhlsthrm Aug 8, 2026
7e1ec22
docs: clarify GitHub PR label permission (#1323)
ColeMurray Aug 8, 2026
8b10df2
fix(linear-bot): use top-level prompt context (#1325)
ColeMurray Aug 8, 2026
6df7559
feat(slack): add thread context to channel triggers (#1326)
ColeMurray Aug 8, 2026
821dd85
feat: server-render sessions with snapshot handoff (#1321)
ColeMurray Aug 8, 2026
a5bb799
fix: correct replay hasMore at exact limit (#1329)
ColeMurray Aug 8, 2026
01173a3
feat: show context compaction in session timeline (#1328)
ColeMurray Aug 8, 2026
d1147b4
build(deps): bump the uv group across 2 directories with 1 update (#1…
dependabot[bot] Aug 8, 2026
1ab6351
feat: add parent-to-child follow-up prompts (#1214)
ColeMurray Aug 9, 2026
746a859
feat: sandbox desktop streaming with VNC (#1332)
ColeMurray Aug 9, 2026
6fbb915
docs: update changelog for recent features (#1333)
ColeMurray Aug 9, 2026
2d686ac
fix: refresh sandbox access when ready (#1337)
ColeMurray Aug 9, 2026
4ff60ac
test: remove implementation-coupled coverage (#1335)
ColeMurray Aug 9, 2026
315347f
feat: show running task indicator (#1338)
ColeMurray Aug 9, 2026
4d14db5
build(deps): bump the npm_and_yarn group across 1 directory with 2 up…
dependabot[bot] Aug 9, 2026
09230dd
fix: stabilize participant sidebar loading (#1339)
ColeMurray Aug 9, 2026
81125ed
fix: contain session timeline auto-scroll (#1340)
ColeMurray Aug 9, 2026
f0363ea
fix: restore typed snapshot session config support (#1342)
ColeMurray Aug 9, 2026
41d2a0d
fix: handle early sandbox bridge connections (#1343)
ColeMurray Aug 9, 2026
edd5121
fix: preserve assistant text across compaction (#1344)
ColeMurray Aug 9, 2026
d182df1
Adopt shared session, artifact, and API imports (#1318)
ColeMurray Aug 10, 2026
7f6b18f
Finish shared owner import adoption (#1347)
ColeMurray Aug 10, 2026
6443127
Import Slack shared types from canonical modules (#1346)
ColeMurray Aug 10, 2026
ea22a94
Remove stale KV-to-D1 migration tooling (#1351)
ColeMurray Aug 10, 2026
166ba23
refactor: remove test-only auth wrapper (#1350)
ColeMurray Aug 10, 2026
b0b7882
Add typed Modal image request models (#1349)
ColeMurray Aug 10, 2026
d635d23
Fix invalid session title route export (#1361)
ColeMurray Aug 10, 2026
943ea91
fix: include Slack sender in agent prompts (#1360)
ajanraj Aug 11, 2026
b89e4d3
refactor: deduplicate Slack user identity lookups (#1365)
ColeMurray Aug 11, 2026
9a5403a
Fix session timeline scroll containment (#1362)
ColeMurray Aug 11, 2026
5c0d40b
Reduce web dead code and restore Fast Refresh boundaries (#1358)
open-inspect[bot] Aug 11, 2026
c0e12a2
fix(types): validate image build feed casts (#1367)
open-inspect[bot] Aug 11, 2026
6fb5e7a
fix: validate child session reasoning effort (#1369)
ColeMurray Aug 12, 2026
61574f8
feat(slack): harden OpenAI target classification (#1366)
ColeMurray Aug 12, 2026
c718152
refactor: throw typed OpenAI errors (#1372)
ColeMurray Aug 12, 2026
164a15a
Revert OpenAI Slack target classification (#1366, #1372) (#1375)
ColeMurray Aug 12, 2026
86b5b2e
fix(slack-bot): mock buildRepoDescriptions as a sync function (#1377)
ColeMurray Aug 12, 2026
3190713
refactor(control-plane): re-land scoped OAuth token-refresh infrastru…
ColeMurray Aug 12, 2026
456880c
ci(terraform): re-land Terraform Tests step and anthropic_api_key val…
ColeMurray Aug 12, 2026
7fe04a4
fix: collapse sub-tasks by default (#1381)
ColeMurray Aug 12, 2026
0830d72
Reduce web API surface for tool call details (#1327)
open-inspect[bot] Aug 12, 2026
cb02566
fix(types): validate unsafe response casts (#1302)
open-inspect[bot] Aug 12, 2026
27de278
fix(types): validate unsafe boundary casts (#1319)
open-inspect[bot] Aug 12, 2026
460b68f
fix(types): validate unsafe mapping casts (#1348)
open-inspect[bot] Aug 12, 2026
1325998
refactor(web): consolidate SCM settings paths into scm-settings-path …
open-inspect[bot] Aug 12, 2026
ca64b91
fix(types): validate unsafe boundary casts (#1137)
open-inspect[bot] Aug 12, 2026
58a8347
Improve form control labels for screen readers (#1320)
open-inspect[bot] Aug 12, 2026
e55a28d
fix(types): validate unsafe E2B and artifact casts (#1324)
open-inspect[bot] Aug 12, 2026
0ea5dac
fix(types): validate unsafe boundary casts (#1336)
open-inspect[bot] Aug 12, 2026
e8c077b
fix(types): validate unsafe boundary casts (#1119)
open-inspect[bot] Aug 12, 2026
e36ac73
fix(types): validate sandbox API response casts (#1382)
open-inspect[bot] Aug 12, 2026
0de877f
Fix child session prompt attribution (#1373)
ColeMurray Aug 12, 2026
77a0e32
Remove provider from image build plans (#1356)
ColeMurray Aug 12, 2026
0626040
refactor: remove confirmed unused code (#1352)
ColeMurray Aug 12, 2026
e89fb20
fix(sandbox-runtime): scope post-compaction message acceptance to the…
ColeMurray Aug 12, 2026
88711ce
Validate sessions before WebSocket upgrades (#1387)
ColeMurray Aug 12, 2026
fc4aab1
feat: queue follow-up prompts from web sessions (#1386)
ColeMurray Aug 12, 2026
bb26505
fix: order queued prompts by processing time (#1391)
ColeMurray Aug 12, 2026
607cad2
Improve schedule form accessibility (#1390)
open-inspect[bot] Aug 12, 2026
2718c63
Fix legacy session schema migration ordering (#1392)
ColeMurray Aug 12, 2026
b349134
refactor: extract OpenCode message attribution (#1389)
ColeMurray Aug 12, 2026
b89530c
Fix mobile session timeline text wrapping (#1394)
ColeMurray Aug 13, 2026
1c56f13
Fix mobile expanded tool detail scrolling (#1395)
ColeMurray Aug 13, 2026
af1c3c7
fix: contain queued follow-ups within session workspace (#1396)
ColeMurray Aug 13, 2026
c5aad46
fix: address recent callback and session regressions (#1384)
open-inspect[bot] Aug 13, 2026
ed52e1f
test: cover nested image build repo owners (#1133)
open-inspect[bot] Aug 13, 2026
0e21e7b
fix: align task activity row markers (#1398)
ColeMurray Aug 13, 2026
c783054
fix: collapse timeline tasks by default (#1399)
ColeMurray Aug 13, 2026
7d228c4
feat: collapse completed session activity (#1400)
ColeMurray Aug 13, 2026
a97135a
Expand child sessions in the session sidebar by default (#1401)
ColeMurray Aug 13, 2026
9c1e463
fix: require invocation ids for automation runs (#1355)
ColeMurray Aug 13, 2026
1727a5e
fix: anchor timeline absolute descendants inside the scroller (#1406)
ColeMurray Aug 13, 2026
da14548
fix: contain mobile session workspace width (#1407)
ColeMurray Aug 13, 2026
0e6ed9a
refactor: split sandbox runtime entrypoint (#1345)
ColeMurray Aug 13, 2026
547852f
fix: center integration row chevrons (#1404)
ColeMurray Aug 13, 2026
05cbfed
fix: address timeline grouping review comments (#1403)
ColeMurray Aug 13, 2026
6088631
fix(linear-bot): preserve instruction after repo clarification (#1331)
ColeMurray Aug 13, 2026
6d0700a
chore: add Knip dead code detection (#1409)
ColeMurray Aug 13, 2026
0df5b9c
chore: configure Knip runtime entries (#1411)
ColeMurray Aug 13, 2026
03ffea7
refactor: trim unused exports (#1412)
ColeMurray Aug 14, 2026
2b195ec
fix: exclude github-bot sessions from the Mine session filter (#1410)
ColeMurray Aug 14, 2026
ad52d01
Normalize responsive spacing on Automations and Analytics (#1414)
ColeMurray Aug 14, 2026
43c3bd0
Unify the session-list query contract (#1311)
ColeMurray Aug 14, 2026
387f57f
feat: add desktop session details toggle (#1413)
ColeMurray Aug 14, 2026
d1369f9
refactor: remove remaining unused code exports (#1415)
ColeMurray Aug 14, 2026
364c082
test: update image build callback fixtures (#1354)
ColeMurray Aug 14, 2026
a39eb69
refactor: remove legacy GitHub OAuth code (#1353)
ColeMurray Aug 14, 2026
869f128
Add automation name search and cursor pagination (#1188)
ColeMurray Aug 14, 2026
857bc3a
Improve mobile session status controls (#1416)
ColeMurray Aug 14, 2026
6936bd2
test: derive compatible runtime fixtures from floor (#1308)
ColeMurray Aug 14, 2026
0dcf22c
Record session message completions atomically (#1312)
ColeMurray Aug 14, 2026
30ede04
fix: persist session details sidebar state (#1418)
ColeMurray Aug 14, 2026
b8eafcd
fix(control-plane): archive warm sessions that were never prompted (#…
ColeMurray Aug 14, 2026
74eb56e
refactor: extract ArtifactRepository (#1421)
ColeMurray Aug 14, 2026
7e3a457
refactor: extract participant and WebSocket mapping repositories (#1422)
ColeMurray Aug 14, 2026
436961c
fix(control-plane): move the draft sweep to its own hourly cron (#1425)
ColeMurray Aug 14, 2026
932115e
fix: pin OpenCode past the message-ID wraparound (#1430)
ColeMurray Aug 14, 2026
acaeab6
feat: remove queued prompts from sessions (#1423)
ColeMurray Aug 15, 2026
062dec2
feat: add Claude Sonnet 5, Grok 4.6, Kimi K3, and GLM 5.3 models (#1433)
duboff Aug 15, 2026
2c3c1e6
fix: order compaction attribution by creation time (#1431)
ColeMurray Aug 15, 2026
95f5a0d
docs: update changelog for recent improvements (#1435)
ColeMurray Aug 15, 2026
376a98d
refactor: extract EventRepository (#1436)
ColeMurray Aug 15, 2026
92fdfb6
refactor: extract MessageRepository (#1437)
ColeMurray Aug 15, 2026
0726405
feat: allow multiple pull requests per session, one per head branch (…
ColeMurray Aug 15, 2026
cdfa5a8
refactor: extract SandboxRepository (#1439)
ColeMurray Aug 15, 2026
63e4cf3
Fix first-launch VNC password prompt (#1440)
ColeMurray Aug 15, 2026
41bc4ca
refactor: extract supervisor process handlers (#1443)
ColeMurray Aug 15, 2026
a6525a7
refactor: extract SessionCoreRepository (#1441)
ColeMurray Aug 15, 2026
bc60b14
refactor: retire SessionRepository (#1447)
ColeMurray Aug 15, 2026
0a22043
test: remove timing-based Slack status assertion (#1446)
ColeMurray Aug 15, 2026
b576324
test: isolate WebSocket dashboard URL hydration cases (#1448)
ColeMurray Aug 15, 2026
97f6aeb
feat: add managed skills (#1449)
ColeMurray Aug 15, 2026
0d76305
docs: add managed skills changelog entry (#1451)
ColeMurray Aug 15, 2026
2775eb3
fix: align grouped action icons with text (#1452)
ColeMurray Aug 15, 2026
79c68a3
fix: show skill name in tool calls (#1450)
ColeMurray Aug 15, 2026
30e0e8b
docs: add managed skills user guide (#1455)
ColeMurray Aug 16, 2026
d703b65
fix: validate normalized automation events at ingress (#1453)
ColeMurray Aug 16, 2026
e2c013a
fix: restore prompt focus after submission (#1456)
ColeMurray Aug 16, 2026
b8c757b
fix: clean up managed skills rollout (#1459)
ColeMurray Aug 16, 2026
d501384
fix: validate MCP server request bodies (#1457)
ColeMurray Aug 16, 2026
8f72fc7
refactor: narrow platform binding contracts (#1460)
ColeMurray Aug 16, 2026
f68d3cd
fix: validate Vercel Sandbox API responses (#1458)
ColeMurray Aug 16, 2026
3dc4324
fix: lint provider infrastructure in CI (#1463)
ColeMurray Aug 16, 2026
754ecfb
fix(control-plane): stop unarchivable rows pinning the draft sweep (#…
ColeMurray Aug 16, 2026
449f231
refactor: extract session connection and broadcast port (#1464)
ColeMurray Aug 16, 2026
72ed45e
refactor: extract session scheduling boundaries (#1469)
ColeMurray Aug 16, 2026
d44b435
feat: define asynchronous session store (#1468)
ColeMurray Aug 16, 2026
494b1af
fix: paginate managed skill catalog (#1473)
ColeMurray Aug 16, 2026
b4fd6dc
fix: restore spacing above execution completion (#1470)
ColeMurray Aug 16, 2026
8bdb7bc
Keep session prompt rendering pure (#1472)
open-inspect[bot] Aug 16, 2026
1d31bef
fix: load skill catalog pages on demand (#1474)
ColeMurray Aug 16, 2026
3120eae
Allow prompt drafting while session connects (#1475)
ColeMurray Aug 16, 2026
04d8fee
fix: claim queued prompts atomically (#1479)
ColeMurray Aug 16, 2026
634b01b
refactor: remove unused session store contract (#1481)
ColeMurray Aug 16, 2026
87faa9b
Add managed skill autocomplete to prompts (#1477)
ColeMurray Aug 16, 2026
0c93a12
fix: clarify child session tool routing (#1484)
ColeMurray Aug 16, 2026
ebec741
fix: stop prior sandbox before replacement (#1478)
ColeMurray Aug 16, 2026
ddae739
Remove unused Python sig1 implementation (#1482)
ColeMurray Aug 16, 2026
f01a854
Remove redundant settings proxy auth preflight (#1480)
ColeMurray Aug 16, 2026
b89eb49
Centralize session rename mutation ownership (#1486)
ColeMurray Aug 16, 2026
9beb086
refactor: share Modal sandbox launch assembly (#1483)
ColeMurray Aug 16, 2026
5be9fe9
refactor: extract platform-neutral session server (#1466)
ColeMurray Aug 16, 2026
6f81fc1
Bound settings proxy mutation bodies (#1489)
ColeMurray Aug 16, 2026
8ac4a5c
feat: turn the session sidebar into a server-backed attention inbox (…
ColeMurray Aug 16, 2026
6b925e5
fix: disable Next.js agent rules (#1490)
ColeMurray Aug 17, 2026
5b1e2a7
fix: add revision ownership to MCP saves (#1485)
ColeMurray Aug 17, 2026
1a31be3
fix: interrupt supervisor restart backoff (#1445)
ColeMurray Aug 17, 2026
b4a637e
Preserve static rendering for automations search (#1444)
open-inspect[bot] Aug 17, 2026
3b971ee
Refactor control-plane policies into route metadata (#1487)
ColeMurray Aug 17, 2026
0393887
Reconcile Git signing configuration on every refresh (#1492)
ColeMurray Aug 17, 2026
0579feb
Consolidate ordinary analytics BFF relays (#1494)
ColeMurray Aug 17, 2026
8f7c6f7
fix: paginate inbox by persisted session roots (#1491)
ColeMurray Aug 17, 2026
8a04f44
fix: validate Linear callback payloads once (#1493)
ColeMurray Aug 17, 2026
6532b3c
fix: arm sandbox watchdog before provider calls (#1496)
ColeMurray Aug 17, 2026
34072d6
Require sandbox authentication for SCM credentials (#1497)
ColeMurray Aug 17, 2026
a8427d1
test: make Slack channel integration test deterministic (#1498)
ColeMurray Aug 17, 2026
f61ee53
fix: reduce Fluxbox log noise (#1499)
ColeMurray Aug 17, 2026
8ac5177
test: cover settings proxy mutation edges (#1504)
open-inspect[bot] Aug 18, 2026
eb86855
Improve Fast Refresh boundaries and remove dead web utilities (#1505)
open-inspect[bot] Aug 18, 2026
e0a8933
test: isolate integration tests from external services (#1500)
ColeMurray Aug 18, 2026
890a0bd
fix: bound shared Slack API requests and pagination (#1507)
ColeMurray Aug 18, 2026
3b5c312
Extract session background task and alarm scheduler ports (#1501)
ColeMurray Aug 18, 2026
2dc3d7b
fix: bound repository clone and fetch during startup (#1510)
ColeMurray Aug 18, 2026
c3ec101
fix: bound Linear bot provider requests (#1509)
ColeMurray Aug 18, 2026
9ce6970
fix(github-bot): forward automation events after dispatch errors (#1506)
hydraxman Aug 19, 2026
c3af07b
test: speed up managed skills boundary fixture (#1515)
ColeMurray Aug 19, 2026
0732688
Bound GitHub authentication and bot API requests (#1511)
ColeMurray Aug 19, 2026
b245042
fix: bound Modal and Vercel sandbox requests (#1512)
ColeMurray Aug 19, 2026
09bde15
ci: drop the obsolete workerd libc++ apt install (#1522)
rhlsthrm Aug 19, 2026
39b72b7
feat: add provider account data foundation (#1524)
ColeMurray Aug 20, 2026
046705b
feat: add provider account management API (#1525)
ColeMurray Aug 20, 2026
d819fbd
feat: route sessions through provider accounts (#1526)
ColeMurray Aug 20, 2026
43ceb36
feat: add OpenAI provider device authorization (#1527)
ColeMurray Aug 20, 2026
f382124
feat: add xAI provider device authorization (#1528)
ColeMurray Aug 20, 2026
016915f
feat: add provider account settings experience (#1529)
ColeMurray Aug 20, 2026
01296e8
docs: document provider account workflows (#1530)
ColeMurray Aug 20, 2026
a226d96
feat(sandbox): add E2B prebuilt-image (snapshot) support (follow-up t…
ColeMurray Aug 20, 2026
09b1eaf
fix: align E2B OpenCode version (#1536)
ColeMurray Aug 20, 2026
0194db9
fix: retire sandbox snapshots taken by an incompatible runtime (#1518)
duboff Aug 20, 2026
7a544ff
test: repair the red control-plane suite on main (#1538)
ColeMurray Aug 20, 2026
e3d58c8
fix(web): surface the sandbox failure reason in the UI (#1537)
ColeMurray Aug 20, 2026
f3cd32d
fix: persist the sandbox failure reason wherever it is broadcast (#1539)
ColeMurray Aug 20, 2026
123e71e
fix(e2b): start the launcher at spawn time for prebuilt-image boots (…
ColeMurray Aug 20, 2026
f7c8c82
Keep session hooks pure during React renders (#1534)
open-inspect[bot] Aug 21, 2026
9e8f891
Drop superseded automation environment column (#1495)
ColeMurray Aug 21, 2026
cfeb3a2
Replace SchedulerDO with a plain D1-backed scheduler (#1543)
ColeMurray Aug 21, 2026
5a2c9ee
feat: remove the 20-skill per-session managed skills cap (#1549)
ColeMurray Aug 21, 2026
f76ea38
feat: page the managed-skill installation and pack its persistence wr…
ColeMurray Aug 21, 2026
9396361
feat(e2b): deliver env at create and exec the entrypoint directly (#1…
ColeMurray Aug 21, 2026
76588f8
fix(sandbox): put /usr/sbin on PATH and install the account helpers (…
duboff Aug 21, 2026
fb3a61f
feat: show recent automation activity (#1555)
ColeMurray Aug 21, 2026
0d482fb
Persist homepage provider account selections (#1557)
ColeMurray Aug 22, 2026
c1c2ce2
fix(skills): drop colliding managed skills (#1558)
hydraxman Aug 22, 2026
fc84046
docs: update managed skill collision behavior (#1560)
ColeMurray Aug 22, 2026
6d18a56
feat: add GLM 5.2 to OpenCode Zen (#1559)
ColeMurray Aug 22, 2026
2929605
Fix two D1 width bugs in managed-skill assignment validation and prof…
ColeMurray Aug 22, 2026
75a6a3e
fix: harden provider account workflows (#1533)
ColeMurray Aug 22, 2026
ecc3d7b
Add configurable per-user keyboard shortcuts (#1562)
ColeMurray Aug 22, 2026
d51e70a
fix: default first subscription account (#1561)
ColeMurray Aug 23, 2026
86a3525
fix: separate session and sandbox status vocabularies (#1554)
ColeMurray Aug 23, 2026
e5b8237
fix: allow Enter shortcuts for sending prompts (#1565)
ColeMurray Aug 23, 2026
908db77
fix(d1): renumber duplicate 0067 migration to 0068 (#1566)
ColeMurray Aug 23, 2026
f8fee9e
Consolidate model and effort selection in prompt composers (#1568)
ColeMurray Aug 23, 2026
a14bfe8
Shorten recent session timestamps to "now" (#1570)
ColeMurray Aug 23, 2026
e5813a0
Simplify new session composer controls (#1573)
ColeMurray Aug 23, 2026
9e9732d
Keep default reasoning effort controls visible (#1572)
ColeMurray Aug 23, 2026
632a537
feat: use provider logos in auth controls (#1574)
ColeMurray Aug 23, 2026
ecdf7f3
docs: add recent changelog entries (#1571)
ColeMurray Aug 23, 2026
1495a07
fix(control-plane): reject sandbox WS reconnect for terminal sessions…
ColeMurray Aug 24, 2026
4812fe0
refactor(control-plane): break lifecycle/message-queue construction c…
ColeMurray Aug 24, 2026
fd83b6b
test(control-plane): cover SessionDO eviction and hibernation restore…
ColeMurray Aug 24, 2026
facab11
refactor(control-plane): delete SessionDO forwarder methods (#1583)
ColeMurray Aug 24, 2026
22a6578
feat: import managed skills from repositories safely (#1576)
ColeMurray Aug 24, 2026
630f2b6
Show skill creator attribution in settings list (#1584)
ColeMurray Aug 24, 2026
cd8dc60
Terminate fatal commit-signing initialization retries (#1582)
ColeMurray Aug 24, 2026
d9c2673
refactor(control-plane): extract UserEnvResolver from SessionDO (#1585)
ColeMurray Aug 24, 2026
1d85c7b
fix(control-plane): re-check sandbox lifecycle state after WS token a…
ColeMurray Aug 24, 2026
8bc4236
refactor(control-plane): BackgroundTasks.submit takes a task factory …
ColeMurray Aug 24, 2026
703c341
ci: skip checks for documentation-only changes (#1590)
ColeMurray Aug 24, 2026
d08c1a1
refactor(control-plane): make SessionDO an adapter over SessionRuntim…
ColeMurray Aug 25, 2026
7f0208d
refactor(control-plane): construct session providers eagerly (#1602)
ColeMurray Aug 25, 2026
5cc9b2d
refactor(control-plane): govern session boundaries, dedupe root wirin…
ColeMurray Aug 25, 2026
6b520d8
refactor(control-plane): collapse socket layers onto one delivery sea…
ColeMurray Aug 25, 2026
6a70c9c
fix(control-plane): close sandbox admission race with two-phase spawn…
ColeMurray Aug 26, 2026
7702b7d
refactor(control-plane): composition classes for the root's three big…
ColeMurray Aug 26, 2026
7a08682
refactor(control-plane): require the secrets encryption key and disso…
ColeMurray Aug 26, 2026
d002c48
ci: split checks by ecosystem (#1592)
ColeMurray Aug 26, 2026
cf398d9
chore: sync fork with upstream (ColeMurray/background-agents)
jasoncuriano Aug 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions .claude/skills/onboarding/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,10 @@ user selected GitHub:
5. If GitHub sign-in is selected, set the **Callback URL** (under "Identifying and authorizing
users"): `{deployed-web-app-url}/api/auth/callback/github`
- **CRITICAL**: The origin must exactly match the Homepage URL selected above.
6. **Repository permissions**: Contents (Read & Write), Issues (Read & Write), Pull requests (Read &
Write), Metadata (Read-only)
6. **Repository permissions**: Contents (Read & Write), Pull requests (Read & Write), Metadata
(Read-only), and Issues (Read & Write) only if the GitHub bot is enabled. Pull requests
permission also authorizes creating and applying labels to session-created pull requests;
labeling does not require Issues permission.
7. If GitHub sign-in uses email/domain admission, set **Account permissions**: Email addresses
(Read-only)
8. Create app, note **App ID**
Expand Down
220 changes: 220 additions & 0 deletions .github/workflows/ci-python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
name: CI (Python)

on:
push:
branches: [main]
paths:
- ".github/workflows/ci-python.yml"
- "packages/control-plane/src/image-builds/timeouts.ts"
- "packages/daytona-infra/**"
- "packages/e2b-infra/**"
- "packages/modal-infra/**"
- "packages/sandbox-runtime/**"
- "packages/shared/src/types/integrations.ts"
- "ruff.toml"
- "terraform/environments/production/modal.tf"
- "terraform/modules/modal-app/scripts/deploy.sh"
- "!**/*.md"
pull_request:
branches: [main]
paths:
- ".github/workflows/ci-python.yml"
- "packages/control-plane/src/image-builds/timeouts.ts"
- "packages/daytona-infra/**"
- "packages/e2b-infra/**"
- "packages/modal-infra/**"
- "packages/sandbox-runtime/**"
- "packages/shared/src/types/integrations.ts"
- "ruff.toml"
- "terraform/environments/production/modal.tf"
- "terraform/modules/modal-app/scripts/deploy.sh"
- "!**/*.md"

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
lint-python-sandbox-runtime:
name: Lint & Format (Python - sandbox-runtime)
runs-on: ubuntu-latest
timeout-minutes: 5
defaults:
run:
working-directory: packages/sandbox-runtime
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
cache: "pip"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"

- name: Run Ruff linter
run: ruff check src/ tests/

- name: Run Ruff formatter check
run: ruff format --check src/ tests/

lint-python:
name: Lint & Format (Python - provider infra)
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
cache: "pip"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e packages/sandbox-runtime
pip install -e "packages/modal-infra[dev]"

- name: Run Ruff linter
run: ruff check packages/modal-infra/ packages/e2b-infra/ packages/daytona-infra/

- name: Run Ruff formatter check
run: ruff format --check packages/modal-infra/ packages/e2b-infra/ packages/daytona-infra/

typecheck-python:
name: TypeCheck (Python)
runs-on: ubuntu-latest
timeout-minutes: 5
defaults:
run:
working-directory: packages/modal-infra
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
cache: "pip"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ../sandbox-runtime
pip install -e ".[dev]"

- name: Run MyPy
run: mypy src/
continue-on-error: true # Allow failures initially as types are added

typecheck-python-sandbox-runtime:
name: TypeCheck (Python - sandbox-runtime)
runs-on: ubuntu-latest
timeout-minutes: 5
needs: [lint-python-sandbox-runtime]
defaults:
run:
working-directory: packages/sandbox-runtime
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
cache: "pip"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"

- name: Run MyPy
run: mypy src/
continue-on-error: true # Allow failures initially as types are added

test-python-sandbox-runtime:
name: Test (Python - sandbox-runtime)
runs-on: ubuntu-latest
timeout-minutes: 5
needs: [lint-python-sandbox-runtime]
defaults:
run:
working-directory: packages/sandbox-runtime
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
cache: "pip"

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "22"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"

- name: Run tests
run: pytest tests/ -v

- name: Run Node.js tests
run: node --test tests/*.test.mjs

test-python:
name: Test (Python - modal-infra)
runs-on: ubuntu-latest
timeout-minutes: 5
needs: [lint-python]
defaults:
run:
working-directory: packages/modal-infra
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
cache: "pip"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ../sandbox-runtime
pip install -e ".[dev]"

- name: Run tests
run: pytest tests/ -v
Loading
Loading