Skip to content

feat(quoter-bot): add helm chart for kubernetes self-hosting - #164

Merged
julien-devatom merged 21 commits into
mainfrom
quoter-bot-helm-chart-0f5a5f
Aug 25, 2026
Merged

feat(quoter-bot): add helm chart for kubernetes self-hosting#164
julien-devatom merged 21 commits into
mainfrom
quoter-bot-helm-chart-0f5a5f

Conversation

@julien-devatom

@julien-devatom julien-devatom commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Why

TIB-2026-08-14-quoter-bot-dockerhub-publishing gave third-party operators a public image (morphoorg/quoter) but no deployment recipe: a Kubernetes operator has to hand-write manifests and rediscover the bot's non-obvious runtime constraints — a config loader that rejects symlinked files, state files checked against the process uid, an image entrypoint that requires root, singleton nonce semantics, and a shutdown sequence that legitimately takes minutes. Each fails loud but late. This PR ships a package-owned Helm chart that encodes those constraints as defaults, so one values.yaml fully describes a correct deployment.

What

  • bots/quoter-bot/helm/quoter-bot — chart targeting morphoorg/quoter:latest (pinnable to immutable commit tags). One values file carries classic workload parameters (image, cpu/memory resources, persistence, scheduling, security contexts, service account) next to a config mapping in the bot's native YAML schema, rendered verbatim into a Secret and passed via --config; the bot's own startup validation stays the single source of truth (no values.schema.json).
  • Bot README — promotes Helm as the recommended Kubernetes self-hosting path, installed from the repo checkout (the chart is deliberately not published to any registry yet); chart README carries the full parameter reference and a complete runnable quickstart.
  • Chart regression testsbots/quoter-bot/test/helm/chart.test.ts (((vitest, 23 tests incl. render-invariant checks))) locks in every review-driven invariant below.
  • TIBTIB-2026-08-14-quoter-bot-helm-chart records the decisions and rejected alternatives (Deployment+Recreate, ConfigMap, registry publishing, in-cluster root entrypoint, fsGroup).
  • .oxfmtrc.json — ignores **/helm/**/templates/**: oxfmt cannot parse Go-templated YAML. Chart.yaml/values.yaml/chart README stay formatter-covered.
  • CLAUDE.md — operator-surface enumeration now mentions the chart (AGENTS.md/.cursorrules are symlinks, so they follow).

Design notes for review

  • Singleton via StatefulSet: nonce cursor, serialized mutation queue, and ownership state are per-instance. A one-replica StatefulSet (portless headless governing Service; chart-managed PVC mounted as a plain volume so existingClaim/retention semantics are unchanged) never creates a replacement pod until the old one is confirmed terminated. Selector identity is pinned to chart+release names (immune to nameOverride), a lookup guard rejects upgrades that would rename the installed StatefulSet (Helm creates-before-deletes on rename → two writers), and Kubernetes' force-deletion escape hatch is documented as an operator invariant: never --force --grace-period=0; fence failed nodes first.
  • subPath config mount at /repo/bots/quoter-bot/quoter-bot.yaml: the loader opens config with O_RDONLY|O_NONBLOCK|O_NOFOLLOW, so the symlinks a plain Secret volume exposes would fail startup; subPath bind-mounts a regular file under a parent that exists in the image. subPath mounts never see Secret updates, so a reserved checksum/config annotation rolls the pod on upgrade; existingConfigSecret users get a documented kubectl rollout restart. Externally supplied secret/claim names are quoted (numeric-looking values stay strings).
  • Non-root instead of railway-entrypoint.sh: the image CMD needs root (chown + setpriv). The chart execs node dist/src/index.js as uid/gid 1000, with a chown-only root init container (capabilities reduced to CHOWN+DAC_OVERRIDE, no privilege escalation) fixing state-volume ownership. Deliberately no fsGroup: kubelet's fsGroup chmod on restored state files would trip the bot's mode & 0o077 rejection and crashloop a restored claim. Restricted-PSS namespaces get a documented pre-owned-volume path. Hardened otherwise: read-only rootfs + emptyDir /tmp, seccomp RuntimeDefault, no SA token mount.
  • Shutdown budget: SIGTERM shutdown serializes up to four receipt-bounded waits (in-flight old-group cancellation, in-flight replacement publication — verified against ladder-make.service.ts — then bootstrap and ladder cleanup batches). Rendered terminationGracePeriodSeconds (default 900) is floored at 4× a chart-managed setup.transactionReceiptTimeoutMs + 120s (900s timeout → 3720s); additional owned groups and env-supplied timeouts are documented as explicit operator sizing.
  • Secrets story: env overrides YAML, so env/envFrom carry MAKER_PRIVATE_KEY and the env-only BETTERSTACK_* values; the quickstart creates the signer Secret from a hidden prompt through stdin (never kubectl argv/history); existingConfigSecret keeps the file out of Helm release storage; serviceAccount.* supports workload-identity signers (AWS IRSA / EKS Pod Identity for the aws method) while keeping the SA token unmounted. Reserved keys: XDG_STATE_HOME (filtered from env), checksum/config (podAnnotations), helm.sh/resource-policy on the state claim while persistence.retain is on.
  • Mutable-tag rollouts: an unchanged pod template never re-pulls a moved latest; opt-in forceRestartOnUpgrade stamps an upgrade-time annotation, with pinned immutable tags recommended for production.

Verification

  • helm lint clean; renders verified for default values, fully-populated values, existingConfigSecret (incl. numeric name → quoted), persistence.enabled=false, persistence.existingClaim, 900s receipt-timeout grace floor (renders 3720s), forceRestartOnUpgrade, serviceAccount.create with an IRSA role-arn annotation, an XDG_STATE_HOME env-override attempt (filtered), a PVC resource-policy: delete override attempt (filtered, keep wins), and nameOverride changes (selector stable; rename guard inert under helm template).
  • The chart-rendered Secret's quoter-bot.yaml was base64-decoded and loaded through the bot's own ConfigService.load in read-only and write mode (env-injected signer resolved to private-key) — proving the values→Secret→--config round trip, including quoted big-integer preservation through Helm.
  • Chart regression tests: 19/19 pass; break-one-assertion checks confirmed they fail when violated. quoter-bot typecheck, pnpm format, pnpm lint clean; CI green on every head.
  • Reviews: repo reviewer agent (pre-commit) — no blocking issues; carapulse APPROVED repeatedly on successive heads (latest formal approval noted in the PR timeline) after its grace-budget, XDG_STATE_HOME, and Restricted-PSS blockers were fixed; codex — sixteen review rounds, every finding fixed with its thread replied to and resolved; Devin — no issues found.

🤖 Generated with Claude Code

Ship a package-owned Helm chart at bots/quoter-bot/helm/quoter-bot so
Kubernetes operators can self-host the public morphoorg/quoter:latest
image from one values file: classic workload parameters (image,
resources, persistence, scheduling, security contexts) next to a
config mapping in the bot's native YAML schema, rendered verbatim into
a Secret and passed via --config.

The chart encodes the bot's runtime constraints as defaults: subPath
config mount (the loader opens with O_NOFOLLOW and rejects the
symlinks a plain Secret volume exposes) with a checksum annotation to
roll the pod on config change; direct non-root node execution with
fsGroup-managed volume ownership instead of the root-only Railway
entrypoint (state files are checked against the process uid); one
replica with a Recreate strategy for the singleton writer; a state PVC
kept on uninstall because losing offer-group ownership fails
readiness; and a 600s termination grace period so shutdown cleanup can
invalidate owned groups and wait for receipts.

Promote Helm as the recommended Kubernetes path in the bot README
(local chart install; the chart is not published to a registry yet),
document parameters and secret-handling options in the chart README,
record the decisions in a TIB, extend the CLAUDE.md operator-surface
enumeration, and ignore Go-templated YAML in oxfmt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@julien-devatom julien-devatom self-assigned this Aug 14, 2026
@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@prd-carapulse[bot] can you review and approve if all good

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@codex review

@prd-carapulse

prd-carapulse Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

✅ Approved: #164 (review)

Review: no blocking findings
Local verification: helm lint plus five render variants passed
CI: Test, Typecheck, Dead-Code, Lint, Notify all green

@prd-carapulse prd-carapulse Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed chart templates, runtime/security assumptions, persistence/config variants, and docs. helm lint passed; default, managed-config, existing-secret, existing-claim, and ephemeral-state renders all parsed successfully. CI is green (Test, Typecheck, Dead-Code, Lint, Notify). No blocking findings.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

Fix the config mount path, make the quickstart runnable, preserve selector labels, and add regression coverage.
@prd-carapulse

prd-carapulse Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

@codex review

chatgpt-codex-connector[bot]

This comment was marked as resolved.

Keep install notes aligned with the mounted config path, reserve the config checksum annotation, and preserve strict restored state-file modes with a chown-only init container.
@prd-carapulse

prd-carapulse Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: eff7196f5b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@julien-devatom
julien-devatom marked this pull request as ready for review August 25, 2026 06:25

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@prd-carapulse[bot] can you review and approve if all good

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@codex review

@prd-carapulse

prd-carapulse Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Review complete on PR #164.

✅ No blocking correctness, security, or Helm findings.
helm lint and render variants pass.
✅ Reviewed fixes for config mounting, checksum handling, labels, bootstrap config, namespace setup, and fsGroup.

Not approved in this pass: current CI Test check is still in_progress; Lint, Typecheck, and Dead-Code pass. Local Vitest was blocked by Node mismatch (required ^24.14.1, executor v26.3.0).

Posted the review comment on GitHub.

@prd-carapulse prd-carapulse Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed current head c66aed5.

No blocking correctness, security, or chart-template findings. Verified locally: helm lint passes; default and custom/existing-secret/ephemeral-state render variants parse successfully; the reviewed fixes for the config subPath, checksum reservation, selector-label ordering, namespace quickstart, bootstrap example, and fsGroup avoidance are present.

Not approving yet: the current CI Test check is still in_progress; Lint, Typecheck, and Dead-Code are green. Local Vitest execution was blocked by the checkout requiring Node ^24.14.1 while this executor has Node v26.3.0. Please approve after Test completes successfully.

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

CI is now fully green on head c66aed5 (Test passed in 7m38s alongside Lint, Typecheck, and Dead-Code). @prd-carapulse[bot] can you review and approve if all good

@prd-carapulse

prd-carapulse Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

✅ Approved current head c66aed54.

Review: no blocking correctness, security, or Helm chart findings
CI: Test, Lint, Typecheck, Dead-Code, and Notify green
Approval: #164 (review)

@prd-carapulse prd-carapulse Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed current head c66aed5. No blocking correctness, security, or Helm chart findings. Test, Lint, Typecheck, Dead-Code, and Notify are green. Approved.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c66aed54e5

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread bots/quoter-bot/helm/quoter-bot/README.md Outdated
Comment thread bots/quoter-bot/helm/quoter-bot/templates/deployment.yaml Outdated
Comment thread bots/quoter-bot/helm/quoter-bot/values.yaml Outdated
Comment thread bots/quoter-bot/helm/quoter-bot/values.yaml
Switch the workload to a one-replica StatefulSet with a portless
headless governing Service: only a StatefulSet refuses to create the
replacement pod until the old one has fully terminated, enforcing the
singleton writer across manual deletion and eviction, not just
rollouts. Keep the chart-managed PVC as a plain volume so existingClaim
and retention semantics are unchanged.

Create the quickstart signer Secret from a hidden prompt through stdin
instead of --from-literal argv. Floor the rendered termination grace
period at a chart-managed setup.transactionReceiptTimeoutMs plus a
two-minute drain buffer. Add opt-in forceRestartOnUpgrade to re-pull a
moved mutable tag, and document kubectl rollout restart for latest.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@prd-carapulse[bot] can you review and approve if all good

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@codex review

@prd-carapulse

prd-carapulse Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Reviewed PR #164 at head 4465ef7ef7c9951f0e97bda0fbf57700c6158d91.

• ✅ No blocking correctness, security, or Helm-template findings.
• ✅ helm lint passed; default, disabled-persistence, existingConfigSecret, and existingClaim renders passed.
• ✅ Lint, Typecheck, Dead-Code, and Notify passed.
⚠️ Did not approve: required CI Test check remains in_progress.
⚠️ Local Vitest was blocked by repository Node requirement ^24.14.1; executor has v26.3.0.
Docs note: TIB still says “No probes, no Service,” but this revision adds a governing headless Service.

Posted a formal review comment on GitHub.

@prd-carapulse prd-carapulse Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed current head 4465ef7ef7c9951f0e97bda0fbf57700c6158d91.

✅ No blocking correctness, security, or Helm-template findings. helm lint passed; default, persistence.enabled=false, existingConfigSecret, and existingClaim renders passed.

⚠️ Not approving this pass because the required CI Test check is still in_progress. Lint, Typecheck, Dead-Code, and Notify are green.

Non-blocking docs note: docs/decisions/TIB-2026-08-14-quoter-bot-helm-chart.md still has the heading “No probes, no Service” although this revision adds a governing headless Service.

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

CI is now fully green on head 4465ef7 (Test passed in 8m04s alongside Lint, Typecheck, Dead-Code, and Notify). @prd-carapulse[bot] can you review and approve if all good

Budget three receipt waits per bootstrap market (cancellation, Setter
ratification, publication — a bootstrap cycle continues serially
through every planned market after SIGTERM), so the quickstart renders
3180s and codex's three-market example 2820s. Drop the PVC lookup
suppression entirely: the claim is always rendered and release-managed,
same-name reinstalls re-adopt the kept claim through Helm's standard
annotation-based adoption, and foreign claims fail Helm's ownership
validation instead of being silently mounted and chowned. Document the
rollout restart required after rotating env-referenced signer Secrets
in place.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@julien-devatom

Copy link
Copy Markdown
Collaborator Author

Round addressed on head 8b1e6fb (fixes in c2de1b3): the grace derivation budgets three waits per bootstrap market, the PVC is always rendered with Helm's native annotation-based adoption handling same-name reinstalls (foreign claims fail ownership validation loudly), and in-place signer-Secret rotations are documented as requiring a rollout restart. CI is fully green. @prd-carapulse[bot] can you review and approve if all good

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@codex review

@prd-carapulse

prd-carapulse Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

✅ Approved PR #164 at final head 8b1e6fb.

Verified: c2de1b3 fixes, helm lint, diff checks, default/long-name/external-config renders, all required CI checks green, zero unresolved review threads.
Posted reply: #164 (comment)
No code changes or merge performed.

@prd-carapulse prd-carapulse Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed final head 8b1e6fb. No blocking correctness, security, or Helm findings. Verified helm lint, diff check, default/long-name/external-config renders, all 5 required CI checks green, and zero unresolved review threads. The c2de1b3 fixes address bootstrap wait budgeting, PVC adoption/ownership handling, and signer-Secret rotation documentation.

@prd-carapulse

prd-carapulse Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

✅ Approved final head 8b1e6fb. Reviewed the c2de1b3 fixes: bootstrap wait budgeting, Helm-native PVC adoption with loud foreign-claim validation, and signer-Secret rotation restart docs. helm lint, diff checks, default/long-name/external-config renders pass; Test, Lint, Typecheck, Dead-Code, and Notify are green; zero unresolved review threads. No code changes or merge performed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8b1e6fb890

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread bots/quoter-bot/helm/quoter-bot/values.yaml Outdated
Comment thread bots/quoter-bot/helm/quoter-bot/templates/statefulset.yaml Outdated
Comment thread bots/quoter-bot/helm/quoter-bot/templates/statefulset.yaml Outdated
@julien-devatom
julien-devatom force-pushed the quoter-bot-helm-chart-0f5a5f branch from 8b1e6fb to 0be4af2 Compare August 25, 2026 10:11
Budget the in-flight cycle per market: three waits per bootstrap
market plus two per ladder market (each replacement awaits its own
Setter ratification and publication as the cycle continues serially
through every configured market) plus the total ladder group count and
two cleanup batches — codex's four-per-book-ladder example now renders
3900s and the quickstart 2460s. Round receipt timeouts up to whole
seconds before multiplying so sub-second remainders cannot shave the
budget, and align the operator sizing guidance in values.yaml, the
package README, and the install notes with the template formula.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@julien-devatom

Copy link
Copy Markdown
Collaborator Author

Two updates: (1) all branch commits are now SSH-signed — the history was rewritten with identical trees (GitHub reports verified: true on every commit) and force-pushed, so prior approvals reference the old SHAs of the same content. (2) Round addressed on head 843dabb: per-market shutdown-wait budgeting (two ratify/publish waits per ladder market, three per bootstrap market), ceiling-rounded receipt timeouts, and aligned operator sizing guidance. CI is fully green. @prd-carapulse[bot] can you review and approve if all good

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@codex review

@prd-carapulse

prd-carapulse Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

✅ Approved PR #164 at current head 843dabb0d6dfd451f7f6d2d169793a376a28e392.

  • No blocking correctness, security, or Helm findings.
  • Verified per-market wait budgeting, ceil-rounded receipt timeouts, and aligned docs.
  • helm lint, Test, Lint, Typecheck, Dead-Code, and Notify pass.
  • GitHub reports the current head signature as verified.
  • No code changes or merge performed.

@prd-carapulse prd-carapulse Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed current head 843dabb after the SSH-signed history rewrite.

✅ No blocking correctness, security, or Helm findings.
✅ SIGTERM lifecycle budgeting now accounts per-market waits, ladder group cancellations, cleanup batches, and ceil-rounded receipt timeouts; the chart/docs formula is aligned.
helm lint, current CI Test/Lint/Typecheck/Dead-Code/Notify, and long-name render coverage pass.
✅ GitHub reports the current head commit signature as verified.

No code changes or merge performed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 843dabb0d6

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread bots/quoter-bot/helm/quoter-bot/README.md Outdated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@julien-devatom

Copy link
Copy Markdown
Collaborator Author

Docs finding addressed on head f8b4ceb: the sizing table states two ratification/publication waits per ladder market, matching the template. CI is fully green. @prd-carapulse[bot] can you review and approve if all good

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@codex review

@prd-carapulse

prd-carapulse Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

PR #164 rechecked at head f8b4ceb.

✅ Docs-only change is correct.
helm lint passes.
✅ Lint, Typecheck, Dead-Code, and Notify pass.
⚠️ Test remains IN_PROGRESS / pending on GitHub. No new approval posted.

No code changes or merge performed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f8b4ceb07b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread bots/quoter-bot/helm/quoter-bot/templates/statefulset.yaml
Comment thread bots/quoter-bot/helm/quoter-bot/templates/_helpers.tpl Outdated
julien-devatom and others added 2 commits August 25, 2026 14:01
Embed an 8-character fullname hash in the state-claim and config
Secret names when the base would truncate, so distinct long fullnames
sharing a truncated prefix cannot collide on Helm ownership (short
fullnames keep the plain <fullname>-state/-config shapes). Neutralize
the rename-guard message's claim-name computation accordingly.
Document that groups persisted from a previous configuration add one
serial startup-cleanup wait per removed group beyond any derived
floor: invalidate first (single maker-wide multicall) or raise the
grace period for a shrinking upgrade.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-0f5a5f

# Conflicts:
#	bots/quoter-bot/README.md
@julien-devatom

Copy link
Copy Markdown
Collaborator Author

Conflicts with main are resolved on head 31f7de1 (npm-CLI release merged in; both new Deploy subsections — npm publishing and Kubernetes (Helm) — retained, and the chart's new invalidate guidance uses the renamed morpho-quoter command). The prior round's fixes are in fb6b459: hashed long suffixed names and persisted-cleanup sizing guidance. CI is fully green. @prd-carapulse[bot] can you review and approve if all good

@julien-devatom

Copy link
Copy Markdown
Collaborator Author

@codex review

@prd-carapulse

prd-carapulse Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

✅ Approved current head 31f7de1.

  • No blocking correctness, security, or Helm findings.
  • Reviewed long-name collision fix, persisted-cleanup sizing guidance, and retained docs changes.
  • helm lint, render checks, Test, Lint, Typecheck, and Dead-Code passed.
  • No code changes or merge performed.

A new Notify check started after approval; this does not affect the approval.

@prd-carapulse prd-carapulse Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved current head 31f7de1.

✅ No blocking correctness, security, or Helm findings.
✅ Reviewed the long-name collision fix, persisted-cleanup sizing guidance, and retained Helm/npm documentation changes.
✅ helm lint and render checks pass; CI Test, Lint, Typecheck, Dead-Code, and Notify are green.

No code changes or merge performed.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: 31f7de1d54

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@julien-devatom
julien-devatom merged commit fdfffe2 into main Aug 25, 2026
7 checks passed
@julien-devatom
julien-devatom deleted the quoter-bot-helm-chart-0f5a5f branch August 25, 2026 13:02
@linear-code

linear-code Bot commented Aug 25, 2026

Copy link
Copy Markdown

MKT-2079

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant