Repository navigation
Description
Problem
fullsend is moving to OpenShell v0.1.1 (fullsend-ai/fullsend#7233). OpenShell 0.1 is a clean break from 0.0.x. provider create now validates every credential against the provider profile's declared credentials:, and none of this repo's profiles declares any. On a v0.1.1 gateway every fleet run stops before the sandbox is created:
provider create "vertex-ai" failed: ... message: "provider credentials are not declared by profile 'fullsend-vertex-ai': _NOOP_VERTEX_AI"
provider create "github-ro" failed: ... message: "provider credentials are not declared by profile 'fullsend-github-ro': GH_TOKEN"
The _NOOP_* placeholder credentials worked around OpenShell refusing an empty credential map (NVIDIA/OpenShell#1978, now closed). 0.1.x creates a provider with no credentials.
Change
-
Declare real credentials in their profiles. Each profile whose provider passes a token declares it. The form follows the upstream reference profile (
examples/governance-interceptor/profiles/github.yamlat v0.1.1) and fullsend's ownfullsend-openaiprofile:credentials: - name: api_token description: GitHub token env_vars: [GH_TOKEN] required: true
fullsend-github-ro,fullsend-github-code:GH_TOKENfullsend-gitlab-ro,fullsend-gitlab-rw,fullsend-gitlab-code:GITLAB_TOKENfullsend-jira-ro:JIRA_TOKEN
Credential delivery is still placeholder substitution by the sandbox proxy. 0.1.x adds that a placeholder only resolves at the endpoints its profile declares.
-
Remove the
_NOOP_*credentials fromproviders/vertex-ai.yaml,gitleaks.yaml,package-registries.yamlandgithub-artifacts.yaml, along with theircredentials:block. Nothing else in those files changes. -
.github/workflows/functional-tests.ymlwrites a schema v1 gateway config, which 0.1.x rejects. Write schema v2, matching fullsend'saction.ymlin #7233:[openshell] version = 2 [openshell.gateway] compute_driver = "podman" [openshell.drivers.podman] supervisor_image = "ghcr.io/nvidia/openshell/supervisor:${OPENSHELL_VERSION}" health_check_interval_secs = 10
This part changes a workflow file, so it has to come from a maintainer rather than the code agent.
Verified
With the profile declarations in (1) and fullsend built from #7233, local fullsend run triage --forge github on OpenShell v0.1.1 (podman, macOS arm64) passed on Claude and on codex: providers ready, gh authenticated through the proxy, Validation: passed. All ten profiles pass openshell provider profile lint on v0.1.1.
Merge order
This change and fullsend#7233 land together. This repo's CI reads the OpenShell version from fullsend main, so it goes green once #7233 merges. Before that, validate by running the functional-tests workflow with fullsend_ref pointing at #7233's branch. No 0.0.x compatibility is kept.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
fullsend-ai-triage commentedon Sep 26, 2026
🤖 Finished Triage · ✅ Success · Started 1:28 PM UTC · Completed 1:35 PM UTC
Commit:
fa6f19d· View workflow run →Runtime: claude · Model: sonnet → claude-sonnet-5 · Effort: high · Cost: $0.68
fullsend-ai-triage commentedon Sep 26, 2026
Thanks for the detailed writeup and the local verification steps. Before this can be dispatched for implementation, one thing needs to be untangled: the change is scoped to land together with fullsend's move to OpenShell v0.1.1, referenced here as
fullsend-ai/fullsend#7233, with CI expected to "go green once #7233 merges."Checking that reference:
fullsend-ai/fullsend#7233is currently an open, docs-only pull request that annotates ADR 0030 with the sandboxexec/stopsignal contract (closing issue #7229) -- it does not touchaction.yml,openshell-version.sh, or any gateway configuration. fullsend'smainbranch still pinsOPENSHELL_VERSION=0.0.116and writes gateway schemaversion = 1in bothaction.ymland.github/scripts/openshell-version.sh. A search across open, closed, and merged issues/PRs infullsend-ai/fullsenddid not surface any other tracking item for the actual v0.1.1 version bump or the schema-v2 gateway config change.OpenShell v0.1.1 itself is a real upstream release, and the proposed
credentials:block format matches both the upstream reference profile and fullsend's ownfullsend-openaiscaffold template, so the mechanics described here look sound. But without a real, in-flight migration to point at, merging the credential-declaration changes now -- especially removing the_NOOP_*placeholders -- risks breaking this repo's CI while it is still running on OpenShell 0.0.x, since the issue itself notes no 0.0.x compatibility is kept.A tracking issue for the actual OpenShell v0.1.1 migration has been proposed in
fullsend-ai/fullsendso this work can be sequenced correctly. Separately, note that item 3 (thefunctional-tests.ymlschema-v2 change) is a workflow-file edit, which the issue itself already flags as needing to come from a maintainer rather than the code agent -- that constraint still applies once the prerequisite above is resolved.Could you confirm whether
#7233was the intended reference, or point to the correct PR/issue tracking the version bump? That will let this be re-triaged against the right dependency.Could not create automatically (file manually or update
create_issues.allow_targetsin config.yaml):Prerequisite: fullsend-ai/fullsend — Migrate to OpenShell v0.1.1: bump pinned version and gateway config to schema v2
#1512 needs to declare real provider credentials in its OpenShell profiles and drop
_NOOP_*placeholder credentials, but that change is only safe once this repo's gateway actually runs OpenShell v0.1.1 -- v0.1.x is the release that stops refusing an empty credential map (NVIDIA/OpenShell#1978) and instead validates every passed credential against the profile's declaredcredentials:block.Currently:
.github/scripts/openshell-version.shpinsOPENSHELL_VERSION=0.0.116.action.ymland.github/scripts/openshell-version.shboth write a gateway config with[openshell]\nversion = 1..github/scripts/openshell-version.shin their own CI (see fullsend-ai/agents.github/workflows/functional-tests.yml), so they cannot adopt v0.1.1-only provider behavior until this repo bumps the pin.Requested work:
OPENSHELL_VERSION/OPENSHELL_SHAin.github/scripts/openshell-version.shto v0.1.1.action.yml(and any other in-repo templates) to schema v2, e.g.:credentials:(e.g.internal/scaffold/fullsend-repo/profiles/fullsend-openai.yaml) still validate cleanly under v0.1.1's stricter provider-create checks.Once this lands, downstream repos whose CI reads the pinned version from this repo (e.g. fullsend-ai/agents) can safely declare real credentials in their own OpenShell profiles and remove
_NOOP_*placeholder workarounds.waynesun09 commentedon Sep 26, 2026
/fs-code Do not sign off. No
git commit -s, noSigned-off-bytrailer; the post-code guard rejects it and the branch is never pushed.The dependency now exists: fullsend-ai/fullsend#7233 pins OpenShell v0.1.1 (
openshell-version.sh0.1.1 / 4ce767fc0), writes the schema v2 gateway config and drops fullsend's own_NOOP_*scaffold credentials. The two land together, and no 0.0.x compatibility is kept.Change exactly these files and nothing else:
credentials:block right after thecategory:line. Use this shape (the same as fullsend'sinternal/scaffold/fullsend-repo/profiles/fullsend-openai.yaml, minus its OpenAI-only fields):profiles/fullsend-github-ro.yaml,profiles/fullsend-github-code.yaml:GH_TOKEN, descriptionGitHub tokenprofiles/fullsend-gitlab-ro.yaml,profiles/fullsend-gitlab-rw.yaml,profiles/fullsend-gitlab-code.yaml:GITLAB_TOKEN, descriptionGitLab tokenprofiles/fullsend-jira-ro.yaml:JIRA_TOKEN, descriptionJira API tokenDo not add
auth_style,header_nameorrefresh. Leave endpoints, binaries and comments unchanged.credentials:block holding the_NOOP_*key (and any comment line that exists only to explain it) inproviders/vertex-ai.yaml,providers/gitleaks.yaml,providers/package-registries.yamlandproviders/github-artifacts.yaml. Leave thename:andtype:lines.grep -rn "_NOOP_" .must return nothing outside git history. Update any doc or test that shows a_NOOP_*credential, or a profile with nocredentials:block for a token-bearing provider..github/workflows/. The schema v2 change tofunctional-tests.ymlneeds workflow permissions; a maintainer adds it to this PR.Run
make lintbefore finishing.fullsend-ai-coder commentedon Sep 26, 2026
🤖 Finished Code · ✅ Success · Started 1:38 PM UTC · Completed 1:48 PM UTC
Commit:
fa6f19d· View workflow run →Runtime: pi · Model: xai/grok-4.6 · Effort: high · Cost: $4.54
ci(#1512): write the schema v2 OpenShell gateway config
ci(#1512): install OpenShell after the Podman API socket
Merge pull request #1513 from fullsend-ai/agent/1512-openshell-provid…
ci(#1512): show podman.socket status and journal when the socket neve…
fix(fullsend-ai#1512)!: declare profile credentials for OpenShell 0.1
ci(fullsend-ai#1512): start the Podman API socket with systemd in fun…
Merge pull request fullsend-ai#1557 from fullsend-ai/agents-ft-podman…