fix(binjovi): let the native Argo deployer refresh outline #741

Merged
binjovi-bot merged 1 commit from fix/outline-argocd-deploy-grant into trunk 2026-09-14 13:48:38 +00:00
Owner

Every outline deploy fails. The argocd_deploy.v2 task exits 1 in under a second — 0.65s and 0.72s on the two attempts — which is too fast to be the availability probe and is the shape of a refused write.

binjovi-deploy-argocd may get and list every Application in ns argocd but may patch only the ones its Role names, and outline was not one. Requesting the refresh is a patch.

What makes this one nasty

Nothing else looks wrong:

signal says
ArgoCD Application outline Synced / Healthy
sync operation Succeeded — successfully synced (all tasks run)
pod 1/1 Running, migrations applied, OIDC discovery green
https://outline.sean.farm 200, valid certificate
/auth/oidc 302 to Hydra, which returns a login_challenge
Binjovi deploy record failed

The workload is fine; only Binjovi's record of it is wrong. A reader checking the app would conclude the deploy verification was flaky.

The list is pinned by exact string in two guards, tests/binjovi.sh and tests/binjovi-untrusted-credential-guard.sh. Both move with it, which is the point of pinning it twice.

https://claude.ai/code/session_01JGe4pyhQ36AhgDfPJry4d3

Every outline deploy fails. The `argocd_deploy.v2` task exits 1 in under a second — 0.65s and 0.72s on the two attempts — which is too fast to be the availability probe and is the shape of a refused write. `binjovi-deploy-argocd` may `get` and `list` every Application in ns `argocd` but may `patch` only the ones its Role names, and `outline` was not one. Requesting the refresh is a patch. ## What makes this one nasty Nothing else looks wrong: | signal | says | |---|---| | ArgoCD Application `outline` | `Synced / Healthy` | | sync operation | `Succeeded` — successfully synced (all tasks run) | | pod | `1/1 Running`, migrations applied, OIDC discovery green | | `https://outline.sean.farm` | `200`, valid certificate | | `/auth/oidc` | `302` to Hydra, which returns a `login_challenge` | | **Binjovi deploy record** | **failed** | The workload is fine; only Binjovi's record of it is wrong. A reader checking the app would conclude the deploy verification was flaky. The list is pinned by exact string in two guards, `tests/binjovi.sh` and `tests/binjovi-untrusted-credential-guard.sh`. Both move with it, which is the point of pinning it twice. https://claude.ai/code/session_01JGe4pyhQ36AhgDfPJry4d3
fix(binjovi): let the native Argo deployer refresh outline
All checks were successful
binjovi/ci Binjovi completed the frozen plan
a44dd6a23a
Every outline deploy fails. The argocd_deploy.v2 task exits 1 in under a
second -- 0.65s and 0.72s on the two attempts -- which is too fast to be
the availability probe and is the shape of a refused write.

binjovi-deploy-argocd may `get` and `list` every Application in ns argocd
but may `patch` only the ones its Role names, and outline was not one.
Requesting the refresh is a patch.

WHAT MAKES THIS ONE NASTY. Nothing else looks wrong. ArgoCD reports the
Application `Synced / Healthy`, the sync operation `Succeeded
(successfully synced, all tasks run)`, the pod is Running 1/1, and
https://outline.sean.farm answers 200 with a valid certificate and a
working OIDC round trip. The workload is FINE; only Binjovi's record of it
is wrong. A reader checking the app would conclude the deploy verification
was flaky.

The list is pinned by exact string in two guards, tests/binjovi.sh and
tests/binjovi-untrusted-credential-guard.sh. Both move with it, which is
the point of pinning it twice.

Claude-Session: https://claude.ai/code/session_01JGe4pyhQ36AhgDfPJry4d3
binjovi-bot deleted branch fix/outline-argocd-deploy-grant 2026-09-14 13:48:38 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/seanfarm!741
No description provided.