fix: project_create infra branch vs main + GITEA_MCP_TOKEN missing from SOPS secrets #14
Closed
opened 2026-05-18 14:33:50 +00:00 by mathias
·
1 comment
No Branch/Tag Specified
main
fix/pipeline-writes-158
fix/edit-path-io-192
fix/create-regular-188
fix/guard-special-179
fix/linkcheck-keeps-write-178
fix/write-dir-redirect-173
fix/tunnel-detect-174
fix/pipeline-root-157
w3/154-mcp-auth-wiring
fix/tunnel-traversal
test/in-brain-targets-171
fix/brain-scan-root-157
fix/graph-wiki-root-157
fix/vectorstore-root-157
fix/notes-root-157
fix/search-root-157
fix/brainwide-root-157
fix/raw-symlinks-153
feat/symlink-tripwire-157
fix/rest-auth-149
fix/123-brain-edit-envelope-check
feat/106-page-aware-extraction
fix/105-source-drift-on-main
fix/104-surface-merge-conflicts-on-main
agent/b1-compile-on-ingest
agent/104-surface-merge-conflicts
agent/105-source-drift
agent/107-loud-unconfigured-alerting
feat/brain-read-edit
fix/capture-i1-refusal-names-target
renovate/configure
feat/consolidate-single-harness
icebox/cmd-routing
feat/brain-pending-promote
fix/close-session-classification-refresh
fix/capture-summarywriter
v0.24.0
v0.23.1
v0.23.0
v0.22.0
v0.21.1
v0.21.0
v0.20.1
v0.20.0
v0.19.1
v0.19.0
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.0
v0.16.1
v0.16.0
v0.15.0
v0.14.0
v0.13.2
v0.13.1
v0.13.0
v0.12.1
v0.12.0
v0.11.2
icebox/cmd-routing-2026-07-01
v0.11.1
v0.11.0
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.0
v0.5.0
v0.4.1
v0.4.0
v0.3.0
v0.2.0
v0.1.0
Labels
Clear labels
agent/ready
blocked/client
blocked/supplier
blocked/upstream
risk/high
risk/low
risk/medium
size/l
size/m
size/s
size/xs
status:dispatch
status:dispatched
status:review
status:reviewing
type/chore
type/decision
type/docs
type/feat
type/fix
type/ops
type/research
type/test
Meets the agent-ready contract; authorizes unattended execution
Waiting on the client
Waiting on a supplier
Waiting on an upstream project or vendor
Irreversible, security-relevant, or control plane
Reversible, local, test-covered
Touches shared state, deploys or data
Too big - split it
Under two days
Under half a day
Under an hour
Maintenance, no behaviour change
Human decision required; never agent/ready
Documentation only
New capability
Corrects broken behaviour
Infrastructure, deploy, runtime
Investigate; output is a finding, not code
Test coverage only
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: mathias/hyperguild#14
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Two follow-up items from project_create e2e verification (2026-05-18)
Item 1 — infra namespace committed to branch, not main
project_createcommits the staging namespace manifest to astaging/<name>branchin the infra repo, not directly to main. This means Flux does NOT deploy the staging
namespace until the branch is manually merged.
This may be intentional (review gate before staging is activated) or a bug.
Decision needed: which behaviour do we want?
Option A — commit directly to main (fully automated)
staging namespace comes up automatically within 60s of
project_create. No manual step.Consistent with TBD. Change: update
callInfraCommitininternal/skills/project/handlers.goto use
branch: "main"and remove thebase: "main"param.Option B — keep staging/ branch (manual review gate)
Human merges the branch when ready to activate staging. Adds friction but gives
explicit control over when Flux deploys the namespace.
Recommendation: Option A for experiment/throwaway projects. The namespace is just
a k8s namespace — it's low risk and Flux will reconcile it. Manual merge is unnecessary friction.
Item 2 — GITEA_MCP_TOKEN not in SOPS secrets
GITEA_MCP_TOKENwas patched imperatively intorouting-secretson 2026-05-18.It will be lost if:
secrets.enc.yaml(SOPS restore)kubectl apply -f secrets.enc.yamlwithout the patchFix: Add
GITEA_MCP_TOKENtok3s/apps/routing/secrets.enc.yamlvia SOPS:This ensures the token survives cluster rebuilds and is tracked in git (encrypted).
Acceptance criteria
callInfraCommitupdated to commit directly to mainGITEA_MCP_TOKENadded tosecrets.enc.yamlvia SOPSrouting-secretsregenerated from SOPS to verify round-trip worksBoth items resolved.
Item 1 — Option A chosen, shipped in
937355cDecision recorded in
DECISIONS.md(2026-05-18 entry).callInfraCommitnow passesbranch: "main"directly; thestaging/<name>indirection andbaseparam are gone. Flux reconciles within ~60s ofproject_create, no manual merge step.Rationale (per ADR): staging namespaces are isolated, low blast-radius, and consistent with project-wide TBD. Manual review was friction with no compensating safety gain for experiment namespaces.
Project skill tests pass. Note:
TestRoutingPodEndToEndis failing pre-existing this commit (port-wait flake, unrelated to project_create); to be tracked separately.Item 2 —
GITEA_MCP_TOKENalready in SOPSConfirmed on
infra@408a527:Round-trip verified against live cluster — same 4-key set:
Cluster rebuilds / SOPS restore now restore both tokens.
Closing.