chore(a2a-maintain): verify + fix FuzeFront's A2A surface config - #903
Open
izzywdev wants to merge 2 commits into
Open
chore(a2a-maintain): verify + fix FuzeFront's A2A surface config#903izzywdev wants to merge 2 commits into
izzywdev wants to merge 2 commits into
Conversation
Ran gate_a2a.py (FuzeSDLC scripts/gate_a2a.py --all) against this repo and
fixed the real, verifiable gaps it found in the already-built per-product A2A
pod chart (deploy/helm/fuzefront/{values,values-prod}.yaml +
templates/a2a.yaml):
- Image: corrected a2a.image.repository from ghcr.io/izzywdev/fuzeagent-a2a
(abandoned 2026-08-24, no longer built by anything) to
ghcr.io/izzywdev/fuze-a2a (the image FuzeAgent's release.yml actually
builds/publishes, and what its own a2a-shared/values-prod.yaml uses).
Re-pinned values-prod.yaml's tag to a plain, currently-live, anonymously
verified-pullable CI tag (624956d8983b) instead of a stale tag@digest
compound the registry API can't resolve as a single reference. Base
values.yaml now declares tag: "latest" (the sanctioned dev-shape value)
instead of an empty string, so the declaration is complete while disabled.
- Creds: added governance/a2a-policy.json (seeded from the FuzeSDLC
canonical) declaring FuzeFront's actual SealedSecrets directory
(deploy/contabo/sealed) — both referenced secrets (a2a-card-signing/jws.key,
fuzefront-secrets/LITELLM_MASTER_KEY) already exist there; the gate's
default sealedSecretDirs just didn't know to look. Also carries the
fleet-approved skills-adoption ratchet naming FuzeFront's real gap (below).
- Auth: base values.yaml no longer declares an empty-valued `auth:` block
while the pod is disabled (contract requires oidcIssuerUrl whenever auth is
present at all) — commented out to mirror FuzeAgent's own a2a-shared base
shape; values-prod.yaml already carried the real issuer.
- Docs: docs/a2a/README.md corrected the stale image name and added a status
note that its "deployment — devops-engineer, not yet built" section is now
done, plus flagged the still-open cross-repo question (this pod vs.
FuzeAgent's a2a-shared also listing a FuzeFront tenant, gated behind its
own not-yet-merged GO-LIVE) for platform-governance/devops-engineer.
Verified: gate_a2a.py --all now reports 2 fatal findings, both the
already-flagged gate/standard-doc staleness (I1 compares against the
old fuzeagent-a2a default; FuzeAgent PR #257) — no new fatal findings.
S3 (zero bundle skills on app-shell-platform) is a real, unresolved gap,
correctly downgraded to a ratcheted warning by the fleet-owner-approved
worklist already naming this repo; no matching skill bundle exists in
.claude/skills/ to honestly claim, so none was force-fit. helm lint +
helm template both clean for values.yaml and values-prod.yaml.
Did not touch: providesTo (already exactly matches the pre-staged
dependency-graph backfill, no diff), CLAUDE.md (already present),
.claude/agents/a2a-maintainer.md (governance-managed, sources the same
known-stale image name from FuzeSDLC — not this repo's file to fix), any
secret value, or FuzeAgent's own a2a-shared chart.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude-Session-Id: fe3aa738-cb24-4315-a29b-29834ddea892
Contributor
fuze-code-review — automated verdictNo verdict was reached — this run is NOT an approval. fuze-code-action conclusion was 'failure', not 'success' — no review was produced, so none can be approved. See the per-rung 'fuze-code-action' notices in the job log for the specific classification (availability / task / declined) and, on an availability failure, the named provider error that triggered it. This is reported as a failed check deliberately: a review that could not run must never be silently indistinguishable from a clean one. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ran
gate_a2a.py --all(FuzeSDLCscripts/gate_a2a.py) against this repo's already-built per-product A2A pod chart and fixed the real gaps it found. No secret values were read, printed, or written anywhere in this change — onlysecretRef {name,key}references and a SealedSecrets-directory declaration.a2a.image.repositorycorrected fromghcr.io/izzywdev/fuzeagent-a2a(abandoned 2026-08-24, no longer built) toghcr.io/izzywdev/fuze-a2a(what FuzeAgent'srelease.ymlactually builds/publishes, and what its owna2a-shared/values-prod.yamluses).values-prod.yaml's tag re-pinned to a plain, currently-live, anonymously-verified-pullable CI tag (624956d8983b) instead of atag@digestcompound the registry API can't resolve as a single reference. Basevalues.yamlnow declarestag: "latest"(the sanctioned dev-shape value) instead of an empty string.governance/a2a-policy.json(seeded from the FuzeSDLC canonical) declaring FuzeFront's actual SealedSecrets directory (deploy/contabo/sealed) — both referenced secrets (a2a-card-signing/jws.key,fuzefront-secrets/LITELLM_MASTER_KEY) already exist there; the gate's defaultsealedSecretDirsjust didn't know to look there. Also carries the fleet-approved skills-adoption ratchet already naming FuzeFront's real skills gap.values.yamlno longer declares an empty-valuedauth:block while the pod is disabled (the contract requiresoidcIssuerUrlwheneverauthis present at all) — commented out, mirroring FuzeAgent's owna2a-sharedbase shape.docs/a2a/README.mdcorrected the stale image name and flagged that its "deployment — devops-engineer, not yet built" section is actually done, plus a still-open cross-repo question for platform-governance/devops-engineer (see below).Verification
The 2 remaining fatal
I1findings are known, already-flagged gate/standard-doc staleness:gate_a2a.py's default policy andgovernance/a2a-runtime-standard.mdin FuzeSDLC still nameghcr.io/izzywdev/fuzeagent-a2aas the one shared image; that repository is abandoned and the real one isghcr.io/izzywdev/fuze-a2a(verified independently:fuzeagent-a2aGHCR package inactive since 2026-08-24 vs.fuze-a2aupdated on every FuzeAgent release through today, and it's what FuzeAgent's own release workflow, chart, and docs consistently use). This is already flagged upstream (FuzeAgent PR #257) — not fixed here since fixing it would mean pointing FuzeFront back at the stale/dead image.S3(zero bundle skills onapp-shell-platform) is a real, unresolved gap — no.claude/skills/*bundle in this repo genuinely documents the role's actual domain behavior (Module-Federation host shell / app registry / heartbeat / shell surface); they're all generic SDLC-process skills. Rather than force-fit one, it's left as the fleet-owner-approved ratcheted debt item it already is.Also verified:
helm lintandhelm templateboth clean forvalues.yamlandvalues-prod.yaml;role.jsonvalidates againstagent-templates/schema/role-manifest.schema.json;.fuze/manifest.jsonvalidates against.fuze/repo-manifest.schema.json;providesToalready exactly matches the pre-stageda2a-dependency-graph.jsonbackfill (no diff needed); rootCLAUDE.mdalready present.NEEDS PRODUCT/OPERATOR
app-shell-platform— someone who owns the domain (frontend-engineer/backend-engineer) needs to author.claude/skills/<name>/SKILL.mddescribing the role's actual product knowledge, then add it torole.jsonskills[].a2a-card-signing/fuzefront-secretsstays devops/operator territory — not touched here, only referenced by name.FUZEFRONT_MCP_URLprovisioning and the MCP-gateway service-identity gap (an A2A-invoked session has no browser-originated caller token to forward) are named indocs/a2a/README.md§1/§3 — owned by backend-engineer + appsec-reviewer, not this pass.OUT OF SCOPE — NOT DONE
deploy/helm/a2a-shared/values-prod.yamlalso lists aFuzeFronttenant entry (behind that file's own "STILL DO NOT MERGE" GO-LIVE gate). If that rollout proceeds while this repo's own per-product pod staysenabled: true, the same tenant name would be served by two pods. Flagged indocs/a2a/README.md; resolving it is platform-governance's/devops-engineer's call, not decided here.