Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
217 commits
Select commit Hold shift + click to select a range
c4dc30d
test(conformance): run driver suites with cargo (#3866)
elezar Oct 12, 2026
e585b49
feat(providers): support stable credential placeholders (#3339)
shiju-nv Oct 12, 2026
e0eabae
fix(gator): surface PR-owned security regressions in reviews (#4338)
johntmyers Oct 12, 2026
775d907
feat(sdk/ts): add createdAtMs to SandboxRef (#4347)
ericcurtin Oct 12, 2026
749d09e
fix(server): retry stop lifecycle writes after concurrent updates (#4…
pimlock Oct 12, 2026
16c8ca5
fix(docs): use lowercase "snap" as it is not a proper noun (#4387)
olivercalder Oct 12, 2026
66696eb
feat(python): expose sandbox status conditions in the SDK (#4436)
maxdubrinsky Oct 12, 2026
e326c10
fix(python): close client when Sandbox entry fails (#4367)
ericcurtin Oct 12, 2026
f6a3983
fix(network): enforce consistent HTTP framing (#4414)
alangou Oct 12, 2026
f01a664
docs: clarify vouch timing, DCO vs signing, and PR checklist guidance…
politerealism Oct 12, 2026
cfe9850
fix(sandbox): name Landlock ABI in startup error (#4413)
ericcurtin Oct 12, 2026
473b5f9
fix(server): return SQLite write versions atomically (#4408)
ericcurtin Oct 12, 2026
cc4b9c7
fix(cli): disable ssh connection sharing for sandbox sessions (#4157)
ericcurtin Oct 12, 2026
28add89
fix(cli): preserve external TLS for SSH forwarding (#4344)
danehans Oct 12, 2026
3495c8e
fix(kubernetes): refresh sandbox runtime image on start (#4376)
lunarwhite Oct 12, 2026
36c4c03
docs(runtimes): show required schema version in gateway TOML examples…
fede-kamel Oct 12, 2026
6b7a00e
docs(extensibility): name extension base capabilities (#4405)
ericcurtin Oct 12, 2026
fc8d0d7
test(tmachine): add a K3s HA conformance lane with PostgreSQL and mTL…
matthewgrossman Oct 12, 2026
dc967d8
chore(ci): close stale issues after 14 additional days (#3985)
purp Oct 12, 2026
85c2c64
chore(codeowners): remove wildcard ownership rule (#3168)
purp Oct 12, 2026
2f9ce1d
test(vm): avoid inherited lease race in restart cleanup test (#4316)
grs Oct 12, 2026
ef863ec
fix(windows): restore MSVC lint for CLI and MXC (#4194)
feloy Oct 12, 2026
01c249f
chore(deps): bump astral-sh/setup-uv from 10.0.0 to 10.0.1 (#2767)
dependabot[bot] Oct 12, 2026
fe31606
feat(sdk-ts): add watchLogs with loss-aware resume (#3778)
letv1nnn Oct 12, 2026
3f12bdc
fix(server): audit proposal rejections in the gateway (#4281)
ericcurtin Oct 13, 2026
5e414ea
test(e2e): remove stale policy retries (#4453)
TaylorMutch Oct 13, 2026
2ffc3d2
ci: require accepted issues for community pull requests (#4340)
elezar Oct 13, 2026
cf6ec17
refactor(vm): source runtime pins only from pins.env (#4373)
benoitf Oct 13, 2026
a9a635a
fix(release): qualify prerelease tag pushes (#4335)
SDAChess Oct 13, 2026
8c67c27
test(oci): add a shared Docker and Podman suite for image USER and WO…
matthewgrossman Oct 13, 2026
fe743a3
fix(kubernetes): time out kube requests per request instead of per id…
matthewgrossman Oct 13, 2026
c608c13
fix(prover): distinguish sibling endpoints and fail closed on solver …
alangou Oct 13, 2026
ea74f2b
fix(vm): bind cached registry images to verified manifest digests (#4…
alangou Oct 13, 2026
db94c17
test(podman): run the e2e binaries that pass in the tmachine guest (#…
politerealism Oct 13, 2026
fd95354
refactor(prover): remove legacy unused reachability constraints (#2441)
eviehoward Oct 13, 2026
6a6401b
fix(cli): backpressure sandbox uploads (#4448)
shiju-nv Oct 13, 2026
dfb0f4f
ci(security): temporarily remove Codex from release scans (#4469)
alangou Oct 13, 2026
fce4e5a
fix(sandbox): release broker-owned listening sockets (#4444)
johntmyers Oct 13, 2026
0b1f6f8
feat(providers): add CLI label creation and filtering (#4265)
johntmyers Oct 13, 2026
0d4d22e
refactor(prover): separate outcome evaluation from rendering (#2632)
eviehoward Oct 13, 2026
b9dc1f6
fix(sdk-ts): preserve rpc errors for out-of-range responses (#4495)
SDAChess Oct 13, 2026
d3e6a35
ci(compatibility): review PR breaks and acknowledge release risks (#4…
SDAChess Oct 13, 2026
5a7728c
fix(ci): skip maintainer approval in merge queue (#4496)
purp Oct 13, 2026
2f6c691
fix(core): retry transiently busy e2fsprogs probes (#4315)
grs Oct 13, 2026
82977e2
fix(otel): enable gzip and https OTLP export (#4399)
ericcurtin Oct 13, 2026
90161fb
feat(kubernetes): add operator allowlists for sandbox pod annotations…
matthewgrossman Oct 13, 2026
a2f0520
docs(rfc): propose sandbox service exposure architecture (#4267)
drew Oct 13, 2026
e30c938
feat(server): scope mutation locks and bound lock waits (#4147)
EmilienM Oct 13, 2026
b4baf23
fix(compute): allow stopping errored sandboxes for recovery (#4231)
shiju-nv Oct 13, 2026
58fdb40
docs(sandboxes): add IPv6 loopback example to Port Forwarding (#2449)
andrewwhitecdw Oct 13, 2026
39b13d1
docs(cli): document sandbox create size limits (#4447)
ericcurtin Oct 13, 2026
6e69360
refactor(runtime): extract portable driver and isolation foundations …
drew Oct 14, 2026
fc0e9db
ci: replace stale issue exemptions with explicit frozen labels (#4534)
elezar Oct 14, 2026
d3bb266
docs(triage): add triage duty tooling (#3082)
elezar Oct 14, 2026
1d8101d
fix(sandbox): report the real seccomp probe launcher error (#4051)
russellb Oct 14, 2026
42e0d00
fix(supervisor): rename OCSF log files from `.log` to `.jsonl` (#4263)
matthewgrossman Oct 14, 2026
3f66c26
fix(helm): render Restricted-compatible security contexts (#3340)
lunarwhite Oct 14, 2026
7225bae
test(oci): cover default and policy identities in the oci-image suite…
matthewgrossman Oct 14, 2026
8b774e2
fix(driver-kubernetes): wait for operator namespace listing before wo…
mrunalp Oct 14, 2026
64c5bcd
fix(build): honor PROTOC when generating protobuf code (#4441)
politerealism Oct 14, 2026
f739283
fix(deps): scope rcgen's x509-parser feature to the supervisor (#4468)
politerealism Oct 14, 2026
4d9a1d2
chore(deps): bump github/codeql-action/upload-sarif (#4552)
dependabot[bot] Oct 14, 2026
36ee06f
fix(rpm): build the Python SDK from older protoc and install every SD…
politerealism Oct 14, 2026
07fd238
feat(server): export gateway OCSF events as OTLP log records (#4500)
krishicks Oct 14, 2026
91385f4
test(sandbox): isolate Landlock descriptor-limit regression (#4457)
grs Oct 14, 2026
6dbe4ad
feat(supervisor): export OCSF events as OTLP log records (#4545)
krishicks Oct 14, 2026
2f415e4
chore(deps): bump actions/attest from 4.2.1 to 4.2.2 (#2625)
dependabot[bot] Oct 14, 2026
68b1082
chore(deps): bump github/codeql-action/init from 4.37.7 to 4.37.9 (#3…
dependabot[bot] Oct 14, 2026
e28321b
fix(deps): bump rustls to 0.23.46 for RUSTSEC-2026-0346..0349 (#4568)
matthewgrossman Oct 14, 2026
d20c090
docs(observability): add observability overview and traces pages (#4560)
krishicks Oct 14, 2026
4dd6151
test(cli): retry forward tests when another process takes the port (#…
matthewgrossman Oct 14, 2026
909f336
fix(kubernetes): validate runtime control mount paths (#4522)
johntmyers Oct 14, 2026
6ab87ce
docs(readme): remove grpcurl walkthrough (#4585)
drew Oct 15, 2026
ef718a4
fix(vm): harden guest sandbox startup (#4539)
alangou Oct 15, 2026
8a67c46
test(tmachine): pin k3s to Kubernetes 1.29 (#4463)
SDAChess Oct 15, 2026
10c6319
ci(compatibility): require explicit risk acceptance (#4595)
SDAChess Oct 15, 2026
2c8f30f
ci: install Determinate Nix in shared setup action (#4593)
SDAChess Oct 15, 2026
59ddef6
feat(tmachine): build local Debian artifacts (#4598)
elezar Oct 15, 2026
05050a6
refactor(ci): extract release qualification and serialize Codex revie…
SDAChess Oct 15, 2026
c06ba10
ci: disable Determinate Nix job summaries (#4601)
SDAChess Oct 15, 2026
2804f68
fix(server): send Accept json on OAuth token refresh (#4530)
ericcurtin Oct 15, 2026
c3ca45f
ci(release): notify Slack when a prerelease succeeds (#4605)
matthewgrossman Oct 15, 2026
2538844
ci(release): decouple prerelease publication from qualification (#4420)
SDAChess Oct 15, 2026
c5519ea
fix(network): bind hostname policy to supervisor DNS (#4602)
alangou Oct 15, 2026
01087a4
fix(sandbox): distinguish descriptor lookup outcomes (#4494)
johntmyers Oct 15, 2026
29a2b8e
feat(providers): report bounded token-grant failures (#4427)
shiju-nv Oct 15, 2026
6546691
docs(kubernetes): document managed workspaces setup (#4622)
drew Oct 15, 2026
10241ab
fix(podman): trust an operator-supplied additional CA for direct egre…
politerealism Oct 15, 2026
44c07da
feat(helm): make gateway PVC size and StorageClass configurable (#3854)
lunarwhite Oct 15, 2026
b2069a2
feat(docker): support host and bridge supervisor networking (#4016)
drew Oct 16, 2026
5add9df
feat(sdk/go)!: replace positional labels with functional Create optio…
rhuss Oct 16, 2026
a4c848a
feat(vm): add host bind mount support via virtiofs (libkrun) (#3463)
benoitf Oct 16, 2026
9c6867c
feat(auth): emit OCSF events for credential-less gateway requests (#4…
krishicks Oct 16, 2026
b8526eb
fix(server): install the metrics recorder before startup reconciliati…
EmilienM Oct 16, 2026
8fcba28
feat(cli): add --annotation to sandbox create (#4325)
ericcurtin Oct 16, 2026
a2982bf
fix(ci): restore default e2e coverage with a Kubernetes recovery waiv…
elezar Oct 16, 2026
633cc6d
perf(server): drop async_trait from mutation replay and supervisor ga…
matthewgrossman Oct 16, 2026
77929d9
feat(sandbox): publish and activate sandbox backend protocol (#3898)
drew Oct 16, 2026
35a3390
feat(auth): classify rejected gateway credentials in authentication e…
krishicks Oct 16, 2026
41c518f
fix(agents): validate sandbox names before Gator launch setup (#4660)
TaylorMutch Oct 16, 2026
604b9f6
feat(config): deliver gateway configuration over the supervisor sessi…
pimlock Oct 16, 2026
744b889
fix(ci): paginate required gate job lookups (#4663)
pimlock Oct 16, 2026
f41f24b
feat(auth): record peer address and request ID on authentication even…
krishicks Oct 16, 2026
fdfbf84
fix(ocsf): report the required device.os.type_id (#4677)
krishicks Oct 17, 2026
b58e24c
fix(supervisor): report plaintext scheme to middleware (#4397)
ericcurtin Oct 17, 2026
55bf786
feat(tmachine): build local RPM artifacts (#4651)
elezar Oct 17, 2026
b1cfc91
ci(release): promote qualified prereleases to stable (#4611)
SDAChess Oct 19, 2026
b4cf1dd
chore(deps): accept build-only zip advisories (#4710)
SDAChess Oct 19, 2026
1a5220c
fix(deps): update setuptools to 83.0.0 (#4711)
SDAChess Oct 19, 2026
740c8fe
fix(deps): patch TypeScript test dependencies (#4712)
SDAChess Oct 19, 2026
0bfa1e8
fix(deps): update pytest to 9.0.3 (#4713)
SDAChess Oct 19, 2026
c38e279
ci(release): list failed jobs in pre-release failure notices (#4719)
matthewgrossman Oct 19, 2026
834b14f
ci(helm): retry chart pushes when GHCR briefly misses a new manifest …
matthewgrossman Oct 19, 2026
1cb9ef8
refactor(crypto): introduce a generic interface for crypto libraries …
varshaprasad96 Oct 19, 2026
50b7fcd
ci(release): generate PR-based stable release notes (#4654)
drew Oct 19, 2026
b01dd62
fix(server): warn on dangling provider refs at startup (#4661)
ericcurtin Oct 19, 2026
2798108
fix(ocsf): report https scheme for TLS-terminated requests (#4684)
ericcurtin Oct 19, 2026
d2a3508
fix(server): reject reserved annotation keys (#4626)
ericcurtin Oct 19, 2026
d4ad1bb
fix(snap): only enable gateway user service for one user (#4615)
olivercalder Oct 20, 2026
7417f75
fix(ci): wait for controller reconciliation before Kubernetes conform…
pimlock Oct 20, 2026
292c9c8
fix(vm): flush guest filesystem before a planned sandbox stop (#4195)
shiju-nv Oct 20, 2026
ddbaa29
CARRY: test(odh): exclude tier1 cases and name xunit reports
Bobbins228 Oct 20, 2026
d97709f
chore(deps): update Mermaid lint dependencies (#4743)
SDAChess Oct 20, 2026
bdb956f
fix(ci): grant prerelease publish pull request read permission (#4747)
SDAChess Oct 20, 2026
30492bc
fix(deps): update russh to 0.64.1 (#4742)
SDAChess Oct 20, 2026
92f3a41
ci: update setup-buildx action to v4.4.1 (#4741)
SDAChess Oct 20, 2026
500132b
Merge pull request #113 from Bobbins228/codex/odh-e2e-tier-exclusions…
Bobbins228 Oct 20, 2026
a24340b
feat(auth): emit OCSF events for gateway authorization denials (#4728)
krishicks Oct 20, 2026
b182255
Merge remote-tracking branch 'upstream/main'
moulalis Oct 20, 2026
32f0264
feat(sandbox): initiate supervisor connections across compute drivers…
drew Oct 20, 2026
ea265a2
docs(cli): say --upload cannot take a command (#4502)
ericcurtin Oct 20, 2026
0f5b4f0
ci(release): reuse the promoted prerelease's release notes preview (#…
matthewgrossman Oct 20, 2026
915a5d1
feat(auth): emit OCSF logon events for accepted gateway credentials (…
krishicks Oct 20, 2026
6df4253
docs(providers): close stdin in the openrouter smoke test (#3907)
fede-kamel Oct 20, 2026
f7e37af
ci(release): tag Go SDK module on stable releases (#4262)
purp Oct 20, 2026
465324a
fix(vm): populate an empty guest /etc/hosts with loopback names (#4182)
shiju-nv Oct 20, 2026
a2b8022
fix(python): ship credential driver protocol bindings (#4760)
maxdubrinsky Oct 20, 2026
2071796
chore(deps): bump certifi from 2026.5.20 to 2026.10.19 (#4764)
dependabot[bot] Oct 20, 2026
c7dd586
ci(compatibility): review driver-facing executable flags (#4644)
drew Oct 21, 2026
bd0edb1
refactor(tests): move tmachine support files under tests/tmachine (#4…
matthewgrossman Oct 21, 2026
72ab4dd
feat(kubernetes): deploy shared supervisor mode (#4695)
drew Oct 21, 2026
837fdfd
fix(sdk/go): accept CLI-compatible gateway names (#4767)
sunilteja93 Oct 21, 2026
d223943
fix(helm): allow shared supervisor SCC-assigned IDs (#4785)
drew Oct 21, 2026
f8533ec
chore(deps): refresh rpm lockfiles [SECURITY] (#115)
red-hat-konflux[bot] Oct 21, 2026
469e16d
chore(deps): refresh rpm lockfiles (#116)
red-hat-konflux[bot] Oct 21, 2026
95dc786
Merge remote-tracking branch 'upstream/main'
moulalis Oct 21, 2026
ceecf02
fix(deps): update webpki to distrust compromised emSign CAs (#4794)
SDAChess Oct 21, 2026
a56614f
CARRY: test(odh): qualify managed workspace SCC identity isolation
2000krysztof Oct 20, 2026
321b93a
feat(auth): emit OCSF events for SSH session and sandbox token checks…
krishicks Oct 21, 2026
220a1d5
chore(ci): use GPT-6.1 Sol for compatibility review (#4796)
SDAChess Oct 21, 2026
e7dc051
chore(sdk): update Vite to 8.1.6 (#4792)
SDAChess Oct 21, 2026
2fd802e
feat(skills): add release-captain skill for the weekly release cadenc…
matthewgrossman Oct 21, 2026
a4c27f9
refactor(auth): share audit helpers for gateway denials and rejection…
krishicks Oct 21, 2026
19ae2b7
test(cli): retry forward tests when ssh loses the port after the chec…
krishicks Oct 21, 2026
5b42917
Merge remote-tracking branch 'upstream/main'
alexxfan Oct 21, 2026
229382e
docs(sandbox): align workload image requirements with current runtime…
zanetworker Oct 21, 2026
33149c1
CARRY: fix(odh): restore upstream skill edits and SPDX header check
andre-motta Oct 21, 2026
1846b2f
Merge pull request #118 from opendatahub-io/fix/sync-skill-license-he…
EmilienM Oct 21, 2026
4b7486e
test(auth): share fixtures for gateway audit event tests (#4778)
krishicks Oct 21, 2026
20cb306
perf(docker): slow steady-state supervisor healthcheck (#4802)
lunarwhite Oct 21, 2026
1d880c9
fix(examples): repair multi-agent notepad launch (#4807)
TaylorMutch Oct 21, 2026
7bfc460
Merge remote-tracking branch 'upstream/main'
moulalis Oct 21, 2026
9350866
Merge remote-tracking branch 'upstream/main'
moulalis Oct 21, 2026
029ff74
Merge remote-tracking branch 'upstream/main'
moulalis Oct 22, 2026
029fda6
refactor(cli): use Rust SDK transport (#4817)
TaylorMutch Oct 22, 2026
725d5c6
Merge remote-tracking branch 'upstream/main'
moulalis Oct 22, 2026
0a51652
chore(server): remove unused server macros crate (#4818)
mrunalp Oct 22, 2026
1a3330f
Merge remote-tracking branch 'upstream/main'
zdtsw Oct 22, 2026
86e520a
Merge remote-tracking branch 'upstream/main'
zdtsw Oct 22, 2026
39d95b4
chore(e2e): remove obsolete OpenShift sandbox SCC grant (#4823)
TaylorMutch Oct 22, 2026
7bbf1bf
Merge remote-tracking branch 'upstream/main'
zdtsw Oct 22, 2026
c2830aa
Merge remote-tracking branch 'upstream/main'
zdtsw Oct 22, 2026
fe2eadf
Merge remote-tracking branch 'upstream/main'
moulalis Oct 22, 2026
fac8232
test(testkit): add the testkit library for end-to-end suites (#4724)
matthewgrossman Oct 22, 2026
cb42f5d
fix(snap): use openshell-prover instead of openshell.prover (#4835)
olivercalder Oct 22, 2026
9152b6e
fix(vm): boot a digest-pinned image from the cache without a registry…
balajinvda Oct 22, 2026
ea13dfc
refactor(supervisor): isolate state per sandbox instance (#4701)
drew Oct 22, 2026
78376bd
fix(installer): resolve the gateway config dir like the CLI does (#4063)
fede-kamel Oct 22, 2026
132c582
docs(extensibility): document external compute driver setup (#4826)
TaylorMutch Oct 22, 2026
c018a04
Merge remote-tracking branch 'upstream/main'
moulalis Oct 22, 2026
eec00ad
fix(podman): Increase the API timeout (#4820)
sruggier Oct 22, 2026
07b7a74
fix(server): bound the provisioning-deadline scan's lock wait (#4549)
EmilienM Oct 22, 2026
9a85667
feat(kubernetes): host sandboxes on the shared supervisor (#4702)
drew Oct 22, 2026
eb0bdc9
Merge remote-tracking branch 'upstream/main'
moulalis Oct 23, 2026
6386a44
chore(deps): refresh rpm lockfiles [SECURITY] (#119)
red-hat-konflux[bot] Oct 23, 2026
5db572a
Merge remote-tracking branch 'upstream/main'
moulalis Oct 23, 2026
0e01006
Merge pull request #114 from 2000krysztof/test/odh-managed-workspace-…
2000krysztof Oct 23, 2026
82a187c
Merge remote-tracking branch 'upstream/main'
moulalis Oct 23, 2026
2d7a6f8
chore(deps): refresh rpm lockfiles [SECURITY] (#122)
red-hat-konflux[bot] Oct 23, 2026
60e6434
chore(deps): refresh rpm lockfiles (#120)
red-hat-konflux[bot] Oct 23, 2026
6b32278
CARRY: fix(skills): move ODH installer guidance out of upstream skill
andre-motta Oct 23, 2026
38fc5c2
Merge pull request #124 from opendatahub-io/fix/skill-sync-conflict/a…
EmilienM Oct 23, 2026
bc4c8f0
fix(deps): update ctutils to resolve timing advisory (#4867)
SDAChess Oct 23, 2026
5bfe2fb
docs(contributing): exempt build and flaky-test fixes from the issue …
krishicks Oct 23, 2026
b504c30
ci(security): allow DRS version references in zizmor
gmenher Oct 23, 2026
e188cad
Merge remote-tracking branch 'upstream/main'
moulalis Oct 23, 2026
8244f73
Merge remote-tracking branch 'upstream/main'
moulalis Oct 23, 2026
72e4eaa
feat(snap): publish prerelease builds to latest/beta channel (#4870)
olivercalder Oct 23, 2026
92434dc
test(windows): repair the Windows MSVC test suite (#4862)
krishicks Oct 23, 2026
fd5a55b
chore(deps): refresh rpm lockfiles [SECURITY] (#1)
konflux-internal-p02[bot] Oct 23, 2026
1fce5ff
Merge remote-tracking branch 'upstream/main'
moulalis Oct 23, 2026
b824e91
Merge remote-tracking branch 'upstream/main'
moulalis Oct 23, 2026
e0ba078
ci: keep rust caches warm on main and stop saving binary caches on br…
krishicks Oct 23, 2026
567d360
fix(build): raise file limit for native gateway builds (#3122)
purp Oct 23, 2026
16250df
feat(helm): add server.extraEnv for the gateway container (#4876)
ericcurtin Oct 23, 2026
f571c8e
docs(agents): ban AI attribution in PR descriptions and issues (#4890)
purp Oct 23, 2026
0b3b3a3
Merge remote-tracking branch 'upstream/main'
moulalis Oct 24, 2026
e0016fa
Merge remote-tracking branch 'upstream/main'
moulalis Oct 24, 2026
c4688aa
feat(helm): add certificate hook pod labels and annotations (#4895)
crookedstorm Oct 24, 2026
e3b4b05
Merge remote-tracking branch 'upstream/main'
moulalis Oct 24, 2026
f4a9bd6
Merge remote-tracking branch 'upstream/main'
moulalis Oct 24, 2026
a57902c
Merge remote-tracking branch 'upstream/main'
moulalis Oct 24, 2026
ff4aafd
chore(deps): refresh rpm lockfiles (#2)
konflux-internal-p02[bot] Oct 25, 2026
baaf0d1
chore(deps): update registry.access.redhat.com/ubi9/nodejs-24-minimal…
red-hat-konflux[bot] Oct 25, 2026
fb89c25
chore(deps): update registry.access.redhat.com/ubi9/nodejs-24-minimal…
konflux-internal-p02[bot] Oct 25, 2026
9454342
chore(deps): refresh rpm lockfiles [SECURITY] (#44)
konflux-internal-p02[bot] Oct 25, 2026
260e844
Merge remote-tracking branch 'upstream/main'
moulalis Oct 25, 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
  •  
  •  
  •  
47 changes: 47 additions & 0 deletions .agents/skills/apply-triage-action/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
name: apply-triage-action
description: Apply, reject, or defer exactly one issue or CI recommendation from a local triage queue report. Use when the on-duty engineer explicitly supplies an item ID.
metadata:
internal: true
---

# Apply Triage Action

Process exactly one item ID from a queue-review report. Do not accept a natural-language approval without an ID. PRs are informational in v1.

## Locate and validate

1. Read the checkpoint and action records under `.agents/triage-duty/`; reconcile dispositions using the [local-state rules](../review-triage-queue/SKILL.md#local-state).
2. Use the named report, or the latest report containing the ID. Read the recommendation and current disposition. Material changes to a previously selected recommendation require fresh review and selection.
3. Reject missing, superseded, already-final, or ambiguous recommendations without making a write. Never substitute another item.
4. Append every explicit disposition or attempted action to a dated local action record. Record repository, target, source report, ID, timestamp, disposition, reason, confirmed payload, and outcome; update the checkpoint afterward. Keep sensitive content out of the record; use `private reason withheld` for private reasons.

## Reject or defer

For **reject** or **defer**, require the engineer to give a reason. Record the local disposition.

- **Reject** is terminal locally. Do not recommend the item again unless material new evidence changes the case.
- **Defer** is non-terminal. Preserve its original priority and carry it into the next review's carried **Needs your decision** section.

For shareable deferrals, draft a GitHub issue comment with reason, public links, and next step, or link existing waiting context. Use the confirmation rule below; declined posting leaves a local-only deferral. Keep private reasons out of external payloads and committable files. For missing reporter evidence, also propose the awaiting-information assessment state using `triage-issue`; unrelated dependency waits do not change lifecycle labels.

## Apply

Before any external write, re-read the target and determine whether it materially changed. Follow [Label Discovery](../../../CONTRIBUTING.md#label-discovery), retrieving all pages of current definitions before proposing a label change; use [`triage-issue`](../triage-issue/SKILL.md) for assessment states and maintainer authority.

- If the action is already complete or would be a harmless no-op, make no external write and record the reason.
- If new information makes the action unsafe or substantially different, stop and request a fresh review/selection.

You MUST ALWAYS preview the exact payload, item ID, source report, and canonical target, then receive explicit confirmation for each individual external write. Selecting or deferring an item is not confirmation; comments, label changes, and closures require separate confirmations. Revalidate immediately before execution; changed payloads require a new preview and confirmation. Never reuse confirmation for a later invocation.

After confirmation, perform only the approved action and record its outcome and public URL; mark applied only after success.

Supported v1 actions:

- Add the discovered triage-queue label to an open substantive community issue; recheck the [intake eligibility rules](../review-triage-queue/SKILL.md#gather-intake) and exclude duplicates, spam, and security disclosures.
- Create one GitHub issue using [`create-github-issue`](../create-github-issue/SKILL.md).
- Post one public issue comment, including waiting context or a duplicate explanation.
- Change an issue's assessment state to awaiting information.
- Close one issue with an evidenced reason; identify the canonical issue for duplicates.

Never create a public GitHub issue for a security finding. Follow [SECURITY.md](../../../SECURITY.md).
4 changes: 3 additions & 1 deletion .agents/skills/build-from-issue/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ Use a single issue comment beginning with `> **🏗️ build-plan**` when a plan
1. Check the current branch and working tree. Preserve unrelated work. Create an issue-specific branch or worktree as needed, following Branch Names in `CONTRIBUTING.md`.
2. Implement the smallest coherent change that fulfills the acceptance criteria. Update relevant skills when behavior or commands change. Keep published documentation minimal: explain exactly what users need, avoid duplication across pages, and omit internal details with no user impact.
3. Add meaningful tests for changed behavior and follow the verification guidance in `CONTRIBUTING.md`. Select format, lint, compile or type checks, and tests for affected components and their dependencies. Run the relevant E2E lane for infrastructure, sandbox, or policy changes. Guidance and template edits need applicable Markdown, YAML, link, and consistency checks. Do not require full Rust, SDK, or repository CI solely because a commit or PR is being created; broaden checks only for a concrete remaining risk or failed check.
4. Review the diff, use a signed-off Conventional Commit, and prepare a PR following `create-github-pr`.
4. Before pushing, apply the contributor access and issue acceptance check in `create-github-pr`. If blocked, preserve local work and report the reason. Review the diff, use a signed-off Conventional Commit, and prepare the PR.

Every PR from this issue-backed workflow must have its own existing issue and use `Closes #<id>` in its Related Issue section. For work needing multiple PRs, split the scope into a closable issue per PR. A high-level issue may track those issues but should not be closed by an incomplete PR. Report the implementation, verification, and any remaining limitation in the PR description, rather than copying earlier issue diagnostics.

Do not apply acceptance or roadmap decisions on behalf of a maintainer. Do not introduce `agent:*` workflow labels.

For first-party security-sensitive crypto, use `openshell-crypto` and extend its facade/backend contracts when needed. Follow the [crypto architecture](../../../crates/openshell-crypto/CRYPTO.md) for compatibility, failure handling, and explicit coverage exceptions.
12 changes: 12 additions & 0 deletions .agents/skills/build-openshell-mxc-windows/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,18 @@ Windows MSVC for the supported deliverables:
It intentionally does not make Windows a Docker, Kubernetes, Podman, or VM
runtime host.

The supervisor and supervisor-process libraries participate in native Windows
checks and tests. Their gateway session, boundary attachment, and TCP readiness
are portable; only the optional Unix SSH/readiness socket adapters are gated.
This is compile and control-plane coverage, not Windows isolation qualification.
Preserve readiness gating on authenticated gateway acceptance and reconnection.
The supervisor process-access multiplexer consumes boundary-provided streams;
do not restore local PID, PTY, or process-group operations there. Native process
mechanics belong to the sandbox or isolation backend. Keep the optional Unix
SSH access adapter separate from portable session orchestration.
Shared Sandbox Protocol audit validation defaults to strict Linux evidence;
concrete platform validators must be selected by the implementing backend.

## Current Repository Shape

The Windows build lane is implemented by these tracked files:
Expand Down
6 changes: 4 additions & 2 deletions .agents/skills/build-openshell-mxc-windows/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,6 @@ top-level workspace targets for check/test:
--exclude openshell-driver-vault
--exclude openshell-driver-vm
--exclude openshell-sandbox
--exclude openshell-supervisor
--exclude openshell-supervisor-process
--exclude openshell-vfio
```

Expand All @@ -124,6 +122,10 @@ egress proxy. The Kubernetes Secrets and Vault libraries still compile as
gateway dependencies; only their standalone Unix-socket binaries and
package-level tests are excluded as top-level targets.

The supervisor and supervisor-process packages now participate as top-level
native check/test targets. Their portable session, attachment, and TCP readiness
coverage does not enable a Windows isolation runtime.

## Common Errors

### Unix imports leak into Windows builds
Expand Down
36 changes: 34 additions & 2 deletions .agents/skills/create-github-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,30 @@ Create pull requests on GitHub using the `gh` CLI.

- The `gh` CLI must be authenticated (`gh auth status`)
- You must have commits on a branch that's pushed to the remote
- Every PR must close an existing issue, except automated dependency updates as described in `CONTRIBUTING.md`. Follow Branch Names in `CONTRIBUTING.md` for contributor branch names.
- Every PR must close an existing issue, except automated dependency updates and build or flaky-test fixes from authors with write access, as described in `CONTRIBUTING.md`. Follow Branch Names in `CONTRIBUTING.md` for contributor branch names.

## Before Creating a PR

### Verify Contributor Access and Issue Acceptance

Before pushing or creating a PR (including a draft), verify the author's access
to the target repository, not their fork. For the authenticated `gh` user:

```bash
gh repo view OWNER/REPO --json nameWithOwner,viewerPermission
gh issue view ISSUE_NUMBER --repo OWNER/REPO --json number,url,labels
```

Authors with verified `WRITE`, `MAINTAIN`, or `ADMIN` access may proceed without
`state:accepted`; keep the issue link and note the missing label. Everyone else
must link at least one target-repository issue and have `state:accepted` on each.
Otherwise, preserve local work and report which issue needs acceptance. A direct
request, roadmap placement, other labels, or vouch status does not bypass this gate.

When acting for another author, verify their permissions. Resolve failed lookups
before proceeding; retry sandbox network failures outside the sandbox before
reporting an authentication problem. Vouch requirements still apply separately.

### Check Config Documentation

If the branch changes gateway TOML parsing, `[openshell.gateway]` fields,
Expand Down Expand Up @@ -106,7 +126,7 @@ gh pr create --title "PR title" --body "PR description"

### Link to an Issue

Every PR except an automated dependency update must close its own issue. Verify that the issue exists, remains open, and covers the PR scope. Automated dependency updates follow the exception in `CONTRIBUTING.md`. Use `Closes #<issue-number>` in the body so merge closes it:
Every PR must close its own issue, except automated dependency updates and build or flaky-test fixes from authors with write access; both follow the exceptions in `CONTRIBUTING.md`. A PR without an issue describes the failure it fixes in the Related Issue section. Otherwise, verify that the issue exists, remains open, and covers the PR scope. Use `Closes #<issue-number>` in the body so merge closes it:

```bash
gh pr create \
Expand Down Expand Up @@ -156,6 +176,9 @@ PR descriptions must follow the project's [PR template](.github/PULL_REQUEST_TEM
## Changes
<!-- Bullet list of key changes -->

## Release Notes
<!-- Optional: a few short, easy-to-read sentences about the user-facing change -->

## Testing
<!-- What testing was done? -->
- [ ] Checks appropriate to the affected code and behavior pass
Expand All @@ -168,6 +191,8 @@ PR descriptions must follow the project's [PR template](.github/PULL_REQUEST_TEM
```

Populate the testing checklist based on what was actually run. Check boxes for steps that were completed.
Keep the Release Notes section concise, with only a few easy-to-read sentences.
Leave it empty when the summary already captures the user-facing change.

## Example PR (Complete)

Expand All @@ -189,6 +214,10 @@ Closes #456
- Default page size is 100, max is 1,000
- Structured responses include `next_page_token`

## Release Notes

Sandbox list results can now be paged through with `--page-size` and `--page-token`.

## Testing

- [x] Relevant CLI format, lint, and unit checks pass
Expand Down Expand Up @@ -220,6 +249,9 @@ EOF

The command outputs the PR URL and number.

Rerun `PR Issue Acceptance` after linked issue labels change; it does not refresh
automatically on issue-label events.

**Display the URL using markdown link syntax** so it's easily clickable:

```
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/fix-security-issue/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ Use this skill after an authorized `review-security-issue` review identifies an
5. Follow `create-github-pr` and use `Closes #<id>` for the reviewed issue. Every PR from this issue-backed remediation workflow must close its own issue; split multi-PR remediations into separate issues in the authorized security workflow. Keep the PR description appropriately scoped to its disclosure venue.

Begin any fix comments with `> **🔧 security-fix-agent**`. Do not change human disposition or introduce `agent:*` workflow labels.

For first-party security-sensitive crypto, use `openshell-crypto` and extend its facade/backend contracts when needed. Follow the [crypto architecture](../../../crates/openshell-crypto/CRYPTO.md) for compatibility, failure handling, and explicit coverage exceptions.
50 changes: 49 additions & 1 deletion .agents/skills/helm-dev-environment/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,45 @@ Override with env vars before running `helm:k3s:create`:
`mcr.microsoft.com/dotnet/aspire-dashboard:latest`)
- `HELM_K3S_COLLECTOR_HEALTH_TIMEOUT` (default: `120` seconds)

### Shared supervisor plumbing

Set `gatewayConfig.openshell.drivers.kubernetes.supervisor_topology`
using a values file (the table key is literally `openshell.drivers.kubernetes`):

```yaml
gatewayConfig:
openshell.drivers.kubernetes:
supervisor_topology: gateway
```

The gateway chart creates a single-replica shared supervisor Deployment,
Service, NetworkPolicy, and an empty `<release>-supervisor-token` Secret in
the release namespace, regardless of shared/managed/operator workspace mode.
The gateway mints a supervisor token from its sandbox-JWT signing key, writes
it into that Secret (the gateway Role may `get`/`patch` only that Secret), and
renews it at half its lifetime; the supervisor mounts the Secret and presents
the token on the private `openshell.supervisor.host.v1` assignment stream,
which accepts nothing else. The topology requires gateway TLS and the signing
key (`server.disableTls` is rejected; the gateway refuses to start without
`gateway_jwt`). New sandbox generations run as sandbox instances in that
process. The chart starts `--mode=shared`, sets `--gateway-endpoint` to the
gateway gRPC URL, mounts the token at `--token-file`, and binds `--address`
(5501) to a plain TCP health listener for the `tcpSocket` probes; nothing
dials the supervisor but sandbox runtimes (5500) and the kubelet. Build the gateway, supervisor, and sandbox
images from the same branch: all three must support the routed runtime
connection and the assignment stream. `workspace` is reserved and rejected.
Omit the field to disable it. `mise run
e2e:kubernetes:shared-supervisor` runs the focused e2e
(`ci/values-supervisor.yaml`). The task prepends that overlay to any
colon-separated `OPENSHELL_E2E_KUBE_EXTRA_VALUES` list, so layer a
workspace-mode overlay to cover managed namespaces:

```bash
OPENSHELL_E2E_KUBE_EXTRA_VALUES=deploy/helm/openshell/ci/values-workspace-managed.yaml \
OPENSHELL_E2E_KUBE_IMAGE_PULL_SECRET=e2e-regcred \
mise run e2e:kubernetes:shared-supervisor
```

### 2. Deploy OpenShell

**Iterative dev** (rebuilds on file changes, recommended during active development):
Expand All @@ -81,7 +120,16 @@ The Skaffold flow builds distinct `gateway`, `sandbox`, and `supervisor` images
and deploys the OpenShell Helm chart. The Kubernetes driver creates a
capability-free workload Pod and a directly managed capability-free supervisor
Pod. One namespace-wide NetworkPolicy denies direct egress from every OpenShell
workload Pod. The
workload Pod. New sandbox generations use `runtime-initiated` control: the sandbox
runtime dials its supervisor through `os-supervisor-<id>`. The legacy
`os-boundary-<id>` Service keeps selecting the workload for old gateways during
rolling upgrades. New gateways create both Services and bind the control-mode
annotation to its runtime generation. The driver adds a per-sandbox
`os-control-<id>` NetworkPolicy for that path only. Existing running generations
keep their connection until replaced; stop/start and gateway recovery that
recreates both Pods upgrade legacy generations automatically. Use compatible
gateway, supervisor, and sandbox runtime images together; there is no legacy
rollout flag. The
`pkiInitJob` hook (a pre-install Job that runs `openshell-gateway generate-certs`)
generates gateway and CLI TLS secrets on first install. Supervisor Pods project
only `ca.crt` and authenticate gateway RPCs with sandbox bearer tokens. User
Expand Down
Loading
Loading