Commit Graph
68 Commits
Author SHA1 Message Date
Drew Newberry 0dd3dbc768 ci(release): restrict auto-tag to weekdays only (#507) 2026-03-20 16:44:02 -07:00
John T. Myers a831a8921b feat(settings): gateway-to-sandbox runtime settings channel (#474)
* feat(gateway/sandbox): add global and sandbox runtime settings flow
2026-03-20 14:08:57 -07:00
Drew Newberry a912848217 refactor(build): unify image build graph for cache reuse (#390) 2026-03-18 15:01:04 -07:00
Drew Newberry e45d415230 chore(repo): migrate github label taxonomy (#454) 2026-03-18 14:01:48 -07:00
Drew Newberry 1a706f33cf fix(ci): simplify dev release install instructions to use install.sh (#453) 2026-03-18 13:53:03 -07:00
John T. MyersandJohn Myers 3566e556f4 fix(ci): use env context instead of secrets in step-level if condition (#452)
The secrets context is not available in step-level if expressions in
GitHub Actions — only in with and env blocks. This caused the workflow
file to be invalid, failing every run with:

  Unrecognized named-value: 'secrets'

Fix by exporting the secret to a job-level env var and checking that
in the step condition instead.

Co-authored-by: John Myers <johntmyers@users.noreply.github.com>
2026-03-18 10:20:27 -07:00
John T. MyersandJohn Myers e26732bfae fix(ci): split vouch gate into two steps with separate tokens (#446)
The ORG_READ_TOKEN (read:org PAT) was being used for all API calls,
including closing PRs and posting comments, which it lacks permissions
for. Split into two steps:

1. Org membership check — uses ORG_READ_TOKEN exclusively
2. VOUCHED.td check + close — uses default GITHUB_TOKEN (has repo write)

Step 2 is skipped entirely if step 1 confirms org membership.

Co-authored-by: John Myers <johntmyers@users.noreply.github.com>
2026-03-18 09:29:23 -07:00
John T. MyersandJohn Myers 82cb8d2bed fix(ci): use ORG_READ_TOKEN for org membership check in vouch gate (#445)
The GITHUB_TOKEN cannot determine org membership — it lacks read:org
scope and this is not configurable via the permissions block. Both
author_association and orgs.checkMembershipForUser return NONE/404 for
org members (even public ones) when called with the repo-scoped token.

Use an ORG_READ_TOKEN secret (fine-grained PAT with read:org) when
available, falling back to GITHUB_TOKEN. Also restores the
checkCollaborator fallback since the PAT can resolve that too.

Setup required: create a fine-grained PAT with Organization > Members >
Read permission, then add it as a repo secret named ORG_READ_TOKEN.

Co-authored-by: John Myers <johntmyers@users.noreply.github.com>
2026-03-18 09:24:19 -07:00
Piotr Mlocek 73e19134b0 fix(ci): pass wheel filenames as job output instead of re-downloading (#418)
The trigger-wheel-publish job was downloading the wheel artifact onto a
persistent self-hosted runner just to glob the filenames. Since
download-artifact does not clean the destination directory, stale .whl
files from every previous run accumulated in release/ and were all sent
to GitLab as WHEEL_FILENAMES.

Confirmed on the runner: /home/ubuntu/actions-runner/_work/OpenShell/
OpenShell/release/ contained 120+ wheels spanning versions 0.0.5
through 0.0.10.

Fix: capture wheel filenames as a job output in build-python-wheels and
pass them directly to trigger-wheel-publish. The trigger job no longer
downloads the artifact at all — it only needs the filenames to construct
GitHub release asset URLs for GitLab/Kitmaker.
2026-03-18 09:20:18 -07:00
John T. MyersandJohn Myers 85a3d83d75 fix(ci): fetch author_association via REST API instead of webhook payload (#444)
The webhook payload field context.payload.pull_request.author_association
is unreliable under pull_request_target events — it was absent or not
populated, causing the previous fix (#442) to still fail.

Switch to fetching author_association via pulls.get REST API, which only
needs pull-requests permission (already granted) and reliably returns
MEMBER for org members regardless of membership visibility.

Also removes the redundant orgs.checkMembershipForUser and
repos.checkCollaborator fallbacks, which suffered from the same
GITHUB_TOKEN permission limitation that started this bug.

Co-authored-by: John Myers <johntmyers@users.noreply.github.com>
2026-03-18 09:12:56 -07:00
John T. MyersandJohn Myers 240d0ee3ed fix(ci): check author_association before API calls in vouch gate (#442)
The vouch-check workflow was closing PRs from NVIDIA org members because
the GITHUB_TOKEN lacks read:org scope, causing orgs.checkMembershipForUser
to return 404 for non-public members. The catch block silently swallowed
these as expected 'not found' responses.

Add an author_association check from the webhook payload as the primary
bypass. GitHub sets this field server-side (MEMBER, OWNER, COLLABORATOR)
regardless of membership visibility, with no extra token permissions
needed. The existing API calls are kept as fallbacks.

Fixes the false positive that closed #430.

Co-authored-by: John Myers <johntmyers@users.noreply.github.com>
2026-03-18 08:53:10 -07:00
Drew Newberry dcd991275c fix(ci): use published install script in release workflows (#416) 2026-03-17 21:09:26 -07:00
Drew Newberry 925160e848 refactor: simplify install.sh to print PATH guidance (#403) 2026-03-17 12:22:25 -07:00
Drew Newberry 5439f478ac fix(ci): skip auto-tag when no new commits since latest tag (#399) 2026-03-17 09:28:55 -07:00
Drew Newberry bb4545ff15 fix(ci): skip remote sccache config for fork PRs (#388) 2026-03-16 19:04:34 -07:00
Drew Newberry 48cb68914f ci(release): enable scheduled nightly release auto-tag (#384) 2026-03-16 17:44:58 -07:00
John T. Myers 8227719d82 fix: use dedicated vouched branch to avoid branch protection (#379) 2026-03-16 16:07:57 -07:00
John T. Myers 20dab0bbf1 chore: replace mitchellh/vouch with hand-rolled workflows (#378) 2026-03-16 15:56:51 -07:00
John T. MyersandJohn Myers c95a954b0f chore: pin mitchellh/vouch actions to SHA (#377)
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
Co-authored-by: John Myers <johntmyers@users.noreply.github.com>
2026-03-16 15:18:37 -07:00
John T. Myers a4e2c91008 chore: add vouch system for first-time contributors (#375)
chore: add vouch system for first-time contributors
2026-03-16 15:06:50 -07:00
Drew Newberry c1195be848 fix(ci): add actions:write permission to release-auto-tag workflow (#361)
The 'Trigger Release Tag workflow' step uses gh workflow run to dispatch
release-tag.yml, which requires the actions:write permission. Without it
the GITHUB_TOKEN gets HTTP 403: Resource not accessible by integration.
2026-03-16 10:47:50 -07:00
Piotr Mlocek ee40fc82ac fix(ci): use github-script for wheel pruning instead of gh CLI (#354) 2026-03-16 07:53:02 -07:00
Piotr Mlocek 85903b95e0 docs: add debug-inference skill, Ollama tutorial, and remove stale inference policy references (#353) 2026-03-16 07:26:25 -07:00
Piotr Mlocek 2e5e8061a9 fix(ci): run wheel pruning before moving devel tag (#334) 2026-03-16 00:59:36 -07:00
Piotr Mlocek 53d95eb62f fix(ci): prune stale devel wheel assets (#332) 2026-03-15 20:25:26 -07:00
Piotr Mlocek c334222463 fix(ci): remove legacy wheel publishing machinery (#331) 2026-03-15 19:50:45 -07:00
Drew Newberry 111d2d8d6e fix(ci): use BuildKit secrets instead of build-arg for GITHUB_TOKEN (#327) 2026-03-15 12:53:44 -07:00
Drew Newberry ddca0df918 ci(canary): add two-step gateway start + sandbox create canary test (#325) 2026-03-15 11:20:07 -07:00
Piotr Mlocek aea37e6e61 ci(release): trigger GitLab wheel publish workflows (#323) 2026-03-15 09:12:35 -07:00
Drew Newberry 0a7ffe1669 ci(release): gate python wheels on e2e for tagged releases (#319) 2026-03-15 00:39:00 -07:00
Drew Newberry d34491a3f3 ci(release): use native GitHub release notes and add e2e gate (#318) 2026-03-14 22:44:12 -07:00
Drew Newberry 8b9192f8f8 fix(ci): trigger release-tag workflow via workflow_dispatch from auto-tag (#315) 2026-03-14 20:12:48 -07:00
Piotr Mlocek bda8b7481e chore(ci): upload Python wheels to release assets (#300) 2026-03-14 18:58:12 -07:00
Drew Newberry c58049cf2e ci: various CI improvements (#312) 2026-03-14 18:31:50 -07:00
Drew Newberry 2e0550a596 ci(release): add auto-tag workflow for patch version bumping (#307) 2026-03-14 14:44:33 -07:00
Drew Newberry 1a35265d8e fix(canary): use curl instead of gh CLI for release download (#299) 2026-03-13 21:47:36 -07:00
John T. Myers 6ddb6aef83 chore: establish agent-first development ethos across project (#293)
* docs: enhance AGENTS.md as primary agent entrypoint

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add opencode agent definitions for sub-agent workflows

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* docs: overhaul CONTRIBUTING.md for agent-first workflow

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* docs: reframe README.md with agent-first identity

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add bug report and feature request issue templates

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add issue template config with agent-first contact links

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add pull request template

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add CODEOWNERS

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: update .claude/ README to document skill symlink and consolidation

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: remove github-rest-api skill

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* feat: add triage-issue skill for community issue assessment

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* refactor: update create-github-issue skill for template conformance

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* refactor: update create-github-pr skill for template conformance

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* refactor: update build-from-issue skill for template conformance and triage awareness

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* ci: add issue triage gate workflow

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* feat: add sync-agent-infra skill to detect and fix infrastructure drift

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

---------

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>
2026-03-13 21:13:24 -07:00
Drew Newberry 3bcbd93401 ci(release): add canary triggered after release workflow (#298) 2026-03-13 20:22:38 -07:00
Drew Newberry 1ba798f0fb ci(release): pin OPENSHELL_IMAGE_TAG to version for tagged releases (#297) 2026-03-13 19:28:35 -07:00
Drew Newberry 19c3230267 feat(ci): add automated release workflow with patch version bumping (#284) 2026-03-13 17:44:22 -07:00
Drew Newberry 6b9ac05bab fix(install): use gh CLI for release downloads instead of HTTP (#285) 2026-03-13 11:58:34 -07:00
Drew Newberry 06a62ddfaf ci: speed up E2E pipeline by running on arm64 runners and skipping redundant cluster rebuild (#278) 2026-03-13 02:06:47 -07:00
Drew Newberry fbd93a4632 refactor: rename navigator- crate prefix to openshell- (#277) 2026-03-13 02:02:18 -07:00
Drew Newberry 7b0a243304 ci: remove sandbox docker build from publish and e2e workflows (#275) 2026-03-13 00:56:07 -07:00
Drew Newberry f97270f988 refactor(docker): rename server image to gateway (#246)
* refactor(docker): rename server image to gateway

Rename Dockerfile.server to Dockerfile.gateway and update all image
references from openshell/server to openshell/gateway across Helm
charts, Kubernetes manifests, mise tasks, build/deploy scripts, CI
workflows, and documentation.

The underlying Rust binary (navigator-server) is unchanged -- this
rename only affects the Docker image name and Dockerfile.

* fix: catch remaining server->gateway references in docs and comments
2026-03-11 16:01:26 -07:00
Drew Newberry 984d1a6e5c chore: rename project from NemoClaw to OpenShell (#198) 2026-03-10 11:49:09 -07:00
Drew Newberry 1cf54ca055 feat(bootstrap): switch container registry from CloudFront CDN to GHCR with token auth (#167) 2026-03-09 23:46:23 -07:00
Miyoung Choi 066c2f80fe ci(docs): finish setting up PR doc preview workflow (#160) 2026-03-09 22:58:27 -07:00
Piotr Mlocek ec89fec74d fix(ci): use docker-safe publish image tags (#169) 2026-03-07 06:03:21 -08:00
Piotr Mlocek 12035387f5 fix(ci): drop unnecessary pipefail in docker build workflow (#166)
The reusable Docker build workflow runs under sh by default, and the compute-version step only uses a single command substitution. Removing pipefail avoids the illegal option error without changing the explicit tag-fetch setup.
2026-03-06 19:17:53 -08:00