chore: sync fork to upstream paradigmxyz/centaur main (f97c8219) - #12
Merged
Merged
Conversation
Co-authored-by: Perry Dime <260989497+svc-paradigm@users.noreply.github.com>
* feat(api-rs): persist MCP console user metadata * refactor(api-rs): avoid redundant MCP metadata writes
…xyz#1450) * fix(mcp): filter tool catalog by the sandbox tool allowlist The MCP endpoint advertised every discovered tool, but sandboxes only install tools admitted by TOOL_ALLOWLIST/TOOL_BLOCKLIST, so tools/list included entries whose calls could only fail in the tool host -- and clients plan around those phantom tools. Filter the MCP catalog with the same lists, parsed from SESSION_SANDBOX_EXTRA_ENV (the exact values sandbox pods boot with), matching the sandbox shim gate: package directory name or pyproject project name, unset meaning unrestricted. Covers both tools/list and the tools/call lookup. * fix(mcp): align tool catalog with sandbox policy --------- Co-authored-by: Matthew Slipper <me@matthewslipper.com>
* fix(console): serialize Slack DM credential sync * fix(console): checkpoint Slack DM conversations * fix(console): skip rejected Slack DM conversations
* fix(console): retry Slack DM sync after rate limits * fix(console): sleep for short Slack rate limits * refactor(console): retry individual Slack requests * fix(console): cap inline Slack rate-limit retries
…e in the ruby-dependencies group (paradigmxyz#1471) chore(deps): bump solid_queue Bumps the ruby-dependencies group in /services/console with 1 update: [solid_queue](https://github.com/rails/solid_queue). Updates `solid_queue` from 1.6.0 to 1.7.0 - [Release notes](https://github.com/rails/solid_queue/releases) - [Commits](rails/solid_queue@v1.6.0...v1.7.0) --- updated-dependencies: - dependency-name: solid_queue dependency-version: 1.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ruby-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…z#1472) Bumps the github-actions group with 3 updates: [depot/setup-action](https://github.com/depot/setup-action), [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) and [mikefarah/yq](https://github.com/mikefarah/yq). Updates `depot/setup-action` from 1.7.1 to 1.7.2 - [Release notes](https://github.com/depot/setup-action/releases) - [Commits](depot/setup-action@15c09a5...91bc849) Updates `docker/setup-buildx-action` from 4.2.0 to 4.3.0 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](docker/setup-buildx-action@bb05f3f...37fe631) Updates `mikefarah/yq` from 4.53.3 to 4.53.6 - [Release notes](https://github.com/mikefarah/yq/releases) - [Changelog](https://github.com/mikefarah/yq/blob/master/release_notes.txt) - [Commits](mikefarah/yq@1b9b4ac...c14f446) --- updated-dependencies: - dependency-name: depot/setup-action dependency-version: 1.7.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: docker/setup-buildx-action dependency-version: 4.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: mikefarah/yq dependency-version: 4.53.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…P server (paradigmxyz#1451) * feat(console): allow github_token credentials on the hosted GitHub MCP server api.githubcopilot.com authenticates with the same token as the REST and Git hosts, so seed it into new github_token secrets and accept it in validation. Validation is now host-based instead of an exact rule-list match, so secrets seeded before a host was added stay valid on later saves. * test(console): update github_token expectations for the copilot MCP host The profile now seeds three rules, so counts and host lists gain api.githubcopilot.com. The conflict-rejection test targets a host outside ALLOWED_HOSTS, since a bare github.com rule is valid under host-based validation.
feat(slackbotv2): log webhook retry headers Co-authored-by: Perry Dime <260989497+svc-paradigm@users.noreply.github.com>
* feat: replace NewsAPI.org tool with NewsAPI.ai * fix: preserve existing NewsAPI.org tool * refactor: rename NewsAPI.ai tool to Event Registry
feat: allow admins to demote users
* fix(console): allow Drive readonly credentials to sync * feat(api-rs): support incremental Google Docs sync * refactor(console): paginate Google Docs sync * refactor(console): discard legacy Google Docs sync jobs * fix(console): recover Google Docs sync cursors * refactor(console): consolidate Google Docs sync jobs * refactor(console): simplify Google Docs sync flow * refactor(console): simplify Google Docs checkpoints * refactor(console): chain initial Google Docs pages * fix(console): keep Google Docs crawls progressing * refactor(console): simplify initial Google Docs crawl * fix(console): isolate Google Docs sync queue
* feat(console): add Google Docs sync kill switch * chore(chart): bump version to 0.1.126 * refactor(console): guard Google Docs sync jobs at base * refactor(console): guard Google Docs job entry points * fix(console): default Google Docs sync to disabled
* fix: retry Google Docs network failures * test: cover transient DNS failures --------- Co-authored-by: Perry Dime <260989497+svc-paradigm@users.noreply.github.com>
* fix: truncate oversized Google Docs names * refactor: enforce Google Docs name limit at API boundary --------- Co-authored-by: Perry Dime <260989497+svc-paradigm@users.noreply.github.com> Co-authored-by: Matthew Slipper <me@matthewslipper.com>
Co-authored-by: Perry Dime <260989497+svc-paradigm@users.noreply.github.com>
…init resources (paradigmxyz#1502) * feat(k8s): sandbox priority class, pause-proxy teardown, quota-ready init resources - New SESSION_SANDBOX_PRIORITY_CLASS_NAME arg: sets priorityClassName on agent sandbox pods and their iron-proxy pods so a cluster operator can make sandboxes first-evicted/preempted and scope a ResourceQuota to them. - pause() now deletes the sandbox's iron-proxy pod/configmap alongside scaling the sandbox to zero; resume() already recreates them from the principal recorded at create. Suspended sandboxes previously kept their proxy pod for the full reaper lifetime, exhausting kubelet pod slots (~880 of 1500 slots during the 2026-08-26 prd-centaur-na outage). - tools-bootstrap init container now carries explicit requests/limits so quota-scoped namespaces admit sandbox pods. - Chart: sandbox.priorityClassName + apiRs.priorityClassName values. Amp-Thread-ID: https://ampcode.com/threads/T-01a03e96-a489-73b8-a5ef-888930d4b95d Co-authored-by: Amp <amp@ampcode.com> * chore(chart): bump version to 0.1.127 Amp-Thread-ID: https://ampcode.com/threads/T-01a03e96-a489-73b8-a5ef-888930d4b95d Co-authored-by: Amp <amp@ampcode.com> * refactor: group proxy pod scheduling knobs into ProxyPodScheduling Fixes clippy too_many_arguments after adding priority_class_name. Amp-Thread-ID: https://ampcode.com/threads/T-01a03e96-a489-73b8-a5ef-888930d4b95d Co-authored-by: Amp <amp@ampcode.com> --------- Co-authored-by: Amp <amp@ampcode.com>
…igmxyz#1500) * feat(chart,api-rs): allow a serviceAccountName on sandbox pods Add sandbox.serviceAccountName, rendered as SESSION_SANDBOX_SERVICE_ACCOUNT_NAME and applied to every sandbox pod (session, warm, and workflow-host), so deployments can attach cloud workload identity (e.g. EKS IRSA) instead of long-lived credentials. Identity webhooks inject their own projected credentials keyed off the pod's serviceAccountName, so automountServiceAccountToken stays false. iron-proxy pods are deliberately unaffected. Unset preserves current behavior (namespace default account, nothing rendered). * chore(chart): bump version to 0.1.127 * chore: rerun CI --------- Co-authored-by: Matthew Slipper <me@matthewslipper.com>
…digmxyz#1494) * feat: bind the console user's principal on console thread turns Console sessions register an anonymous per-thread principal, so a user's connected OAuth credentials (e.g. GitHub) never reach console-driven turns: reconciliation matches identity-scoped credentials to principals, and the thread principal carries no user identity. The proxy falls back to shared role-granted tokens and PRs open as the bot. The console now provisions the authenticated user's console-user principal on each execute and passes its foreign ID as requester_principal_foreign_id in the execute metadata. api-rs resolves it fetch-only for console: thread keys (a namespace only the console service may write) and binds it as the turn's requester principal, so the proxy serves the RFC 0005 union: the thread principal's grants plus the requester's always-available OAuth direct grants. Shared threads stay safe — a reply binds the replier's principal, never the creator's. The provisioner no longer rewrites an unchanged principal on repeat calls. The RFC 0005 availability gate is unchanged: a credential joins console turns only when an admin marked its OAuth app always-available. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * refactor: tighten console requester comments Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix: support console requesters on shared threads --------- Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Matthew Slipper <me@matthewslipper.com>
* fix: inject selected persona prompts into sandboxes * refactor: mount persona prompts as sandbox files * refactor: generalize sandbox file materialization * refactor: remove obsolete persona prompt env names * refactor: share sandbox agent home path
* feat(slack): acknowledge steering messages * fix(slack): clear steering reaction before retry execution * chore(chart): bump version to 0.1.129 * fix(slack): keep steering reactions until response * docs(slack): note steering reaction cleanup race * refactor(slack): simplify steering reaction tracking
Iron-proxy pods were created with restartPolicy=Never, so any container crash left the pod permanently Failed while its sandbox kept running with zero egress: Codex gets connection refused to api.openai.com, in-sandbox tools fail, and the turn dies. Nothing repairs the proxy until the next session execute calls assign_proxy_principal and recreates it, so every in-flight turn on that sandbox is lost. This went from latent to load-bearing on prd-centaur-na when tempoxyz/prd-centaur-infra#669 added a 512Mi memory limit: iron-proxy buffers bodies while proxying, large transfers burst past the limit in seconds, and the resulting OOM kills produced 40+ mid-turn 'stream disconnected before completion' failures since 2026-08-27. OnFailure makes the kubelet restart the container in place: same pod IP, the per-sandbox Service keeps routing, and the proxy re-syncs its principal config from iron-control on startup, so an OOM becomes a seconds-long blip instead of a dead session. pod_running() requires the Ready condition, so ensure/assign paths still treat a crash-looping proxy as unusable, and wait_until_proxy_running now bounds a proxy that never comes up by ready_timeout instead of failing on first crash. Amp-Thread-ID: https://ampcode.com/threads/T-01a048d9-a0bb-72f0-b6cd-4769da726fdc Co-authored-by: Amp <amp@ampcode.com>
…z#1496) * feat: bind the console user's principal on console thread turns Console sessions register an anonymous per-thread principal, so a user's connected OAuth credentials (e.g. GitHub) never reach console-driven turns: reconciliation matches identity-scoped credentials to principals, and the thread principal carries no user identity. The proxy falls back to shared role-granted tokens and PRs open as the bot. The console now provisions the authenticated user's console-user principal on each execute and passes its foreign ID as requester_principal_foreign_id in the execute metadata. api-rs resolves it fetch-only for console: thread keys (a namespace only the console service may write) and binds it as the turn's requester principal, so the proxy serves the RFC 0005 union: the thread principal's grants plus the requester's always-available OAuth direct grants. Shared threads stay safe — a reply binds the replier's principal, never the creator's. The provisioner no longer rewrites an unchanged principal on repeat calls. The RFC 0005 availability gate is unchanged: a credential joins console turns only when an admin marked its OAuth app always-available. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * feat: bind the comment author's principal on GitHub turns GitHub-triggered turns ran with only the anonymous per-thread principal, so a commenter's connected GitHub OAuth credential never applied: githubbot already forwards the webhook-verified sender (`user_id`, the numeric GitHub id, and `user_name`) in every execute's metadata, but api-rs resolved a requester only for Slack. api-rs now derives and upserts a per-user `github-user-<id>` principal for `github:` thread keys, labeled `github_subject: <id>`, and binds it as the turn's requester principal. Reconciliation gains GitHub as a subject-label provider (`Principal::KINDS` learns `github_user`), so the credential owner is matched by GitHub user id — the only workable anchor, since the consent flow collects no email scope. The proxy then serves the RFC 0005 union: thread principal's grants plus the requester's always-available OAuth direct grants, so pushes and PRs authenticate as the commenter. A commenter can only bind their own identity: the sender id is authentic from the signature-verified webhook, turns only run for author associations the deployment allowlisted, and the hoisted credential is always the commenter's own. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * refactor: tighten console requester comments Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * refactor: plan-based requester resolution and review cleanup Address review findings on the requester binding: - Collapse register_requester's per-source branches into a typed RequesterPlan (FetchExisting for console-provisioned principals, UpsertDerived for api-rs-owned Slack/GitHub principals) produced by one dispatch function, so a new source is one arm instead of another branch in the registrar. - The test stub now records request bodies, and the GitHub upsert test asserts the serialized kind/name/github_subject payload, not just the path. - RFC 0005 §4 rewritten around the single precedence rule (provider-native subject first, owner-identity/email fallback) so it no longer contradicts the GitHub subject path; Security Considerations lists the webhook and console trust anchors. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix: resolve GitHub requesters on work sessions --------- Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Matthew Slipper <me@matthewslipper.com>
Co-authored-by: Liam Horne <1933029+snario@users.noreply.github.com>
* feat: add experimental memory generation workflow * fix: resolve memory workflow CI failures * fix: align memory generation model with evals * fix: prevent memory generation pipeline wedges * fix: preserve cursor on transient memory failures * fix: reject all Slack group DMs from memory scope * feat: add self-draining memory backfill
…z#1683) * feat(githubbot): skip centaur-skip checks, and read check detail without the Checks API An approval gate that fails until a person signs off reads to githubbot as red CI: it spends every CI-fix attempt on a check no agent can turn green, then escalates. Checks with `centaur-skip` in their name are now dropped from the CI evaluation and from the escalation comment's failing list. The marker rides the job id because GitHub recomputes the check-run name every run, unlike workflowRun.workflow.name, which it caches per consuming repo for ruleset-injected required workflows and never refreshes. That filter needs readable check detail, and a fine-grained PAT — the token type GitHub recommends — has no Checks permission at all, so statusCheckRollup returns null check nodes. Today that silently degrades every deployment using one: failingNames is always empty, so fix turns are dispatched with "Failing checks: unknown" and escalations say "Still failing: the CI checks". When the nodes are unreadable, githubbot now rebuilds the checks from the Actions API, where a job is the same object as its check run. It trusts the reconstruction only when it accounts for every context GitHub counted — commit statuses and check runs from other Apps aren't Actions jobs — and otherwise keeps the existing aggregate behavior rather than call a PR green on a check it never saw. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NY7uaJuKZDbHdD9UaBQZVc * docs(githubbot): clarify centaur-skip naming * fix(githubbot): retain same-named workflow checks * fix(githubbot): harden Actions check fallback --------- Co-authored-by: Oliver Ponder <oliver.ponder@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0af6d-78c5-73b1-b70a-780a9a5a818e Co-authored-by: Amp <amp@ampcode.com>
* docs: clarify Slack search channel access * docs: refine Slack history permission guidance * test: remove Slack prompt text assertion
…ATIONS) (paradigmxyz#1679) * feat: configurable sandbox pod annotations (SESSION_SANDBOX_POD_ANNOTATIONS) Sandbox pods and their paired iron-proxy pods are created by api-rs at runtime, so nothing the Helm chart renders can attach metadata to them. There is no way to set pod annotations, which operators running on Karpenter or cluster-autoscaler need: without `karpenter.sh/do-not-disrupt` (or `cluster-autoscaler.kubernetes.io/safe-to-evict: "false"`) on an in-flight sandbox pod, a node consolidation or drift replacement can evict the pod and kill a running turn. Add a `SESSION_SANDBOX_POD_ANNOTATIONS` knob (JSON object of string key/value pairs) that mirrors the existing `SESSION_SANDBOX_NODE_SELECTOR`: malformed JSON is startup-fatal, and each entry is validated against the Kubernetes annotation shape (key prefix/name rules, value length and control-character limits) so a bad annotation fails fast instead of being rejected later by the API server. The annotations are applied to both the sandbox pod template and the iron-proxy pod; the proxy's binding annotations always win over any operator key collision. The Helm chart renders `sandbox.podAnnotations` into the new env var alongside the other sandbox scheduling knobs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore(chart): bump version to 0.1.143 The contrib/chart change adding the SESSION_SANDBOX_POD_ANNOTATIONS knob (values.yaml, templates/apirs.yaml) requires a chart version bump so the release-chart "Validate chart version bump" check passes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix: isolate sandbox pod annotations --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Matthew Slipper <me@matthewslipper.com>
* feat: add Zoom OAuth credential support * fix: enforce Zoom identity requirements * docs: remove unsupported Zoom tool recipe * docs: restore supported Zoom automation recipe --------- Co-authored-by: Matthew Slipper <me@matthewslipper.com>
* feat: expose scoped Slack rows to company context * docs: clarify scoped Slack queries * feat: add scoped Slack context views * refactor: combine company context migrations * test: cover company context Slack policies
* fix: use scoped company context reader role * feat: enable public Slack company context * feat: pass company context identity settings
…1684) * feat(slack): add native direct message search * refactor(slack): use company context for search * refactor(slack): call company context client directly * feat(slack): search scoped indexed messages * refactor(slack): own indexed message search * refactor(slack): use shared company context dsn
* feat: gate sessions on preapproved principals * fix: require preapproval for requester principals * fix: exempt internal workflows from session admission * fix: serialize denied Slack status cleanup * chore(chart): bump version to 0.1.144
Co-authored-by: zhygis <5236121+Zygimantass@users.noreply.github.com>
…ath (paradigmxyz#1685) foundryup changed its install layout: the toolchain binaries now land in ~/.foundry/versions/foundry-rs/foundry/${FOUNDRY_VERSION}/ instead of ~/.foundry/versions/${FOUNDRY_VERSION}/. The hardcoded symlink target ~/.foundry/versions/${FOUNDRY_VERSION}/$bin therefore dangles, so cast, forge and anvil fall off PATH (`cast: not found`, exit 127). Resolve each binary's real path with `find` before creating the symlink, so the links survive foundryup layout changes; fail the build loudly if a binary is missing; and verify cast/forge/anvil actually run at build time.
* feat: make sandbox drain busy-aware Draining sandboxes on deploy or scale-down previously stopped every non-terminal sandbox unconditionally, interrupting any turn that was executing at that moment. The drain now skips sandboxes whose session has a queued or running execution and reports them as busy, so a rollout can wait for in-flight turns to finish instead of killing them. An explicit ?force=true restores the unconditional behavior. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix: make sandbox drain fail closed --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Matthew Slipper <me@matthewslipper.com>
* fix(slack): add direct command guidance to MCP * fix(slack): move MCP direct guidance to help * docs(slack): explain tool access paths in help * docs(slack): tie direct commands to user tokens
* feat: add Vega-Lite rendering tool * docs: expand Vega-Lite tool help * style: apply brand defaults to Vega-Lite charts * test: normalize styled CLI help output * style: align Vega-Lite defaults with chart guidelines
* fix: retry fresh Slack file share lookups * refactor: validate Slack shares in retry helper * refactor: simplify Slack file age check
* feat: add JSON output to gsuite table commands * test: remove redundant gsuite JSON matrix
* feat: expose failed workflow metrics * fix: count only terminal workflow failures * refactor: emit workflow outcomes on transition * fix: emit terminal outcomes across worker paths * test: wait for terminal outcome hooks
…z#1715) Bumps the github-actions group with 3 updates: [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain), [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action). Updates `dtolnay/rust-toolchain` from 6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 to 02cb101ec7c40f2c49e1d9714d64511d8e1b74de - [Release notes](https://github.com/dtolnay/rust-toolchain/releases) - [Commits](dtolnay/rust-toolchain@6c977a6...02cb101) Updates `ruby/setup-ruby` from 1.321.0 to 1.324.0 - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](ruby/setup-ruby@95ef2b0...a0102e0) Updates `docker/setup-buildx-action` from 4.3.0 to 4.4.1 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](docker/setup-buildx-action@37fe631...f87e599) --- updated-dependencies: - dependency-name: dtolnay/rust-toolchain dependency-version: 02cb101ec7c40f2c49e1d9714d64511d8e1b74de dependency-type: direct:production dependency-group: github-actions - dependency-name: ruby/setup-ruby dependency-version: 1.324.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: docker/setup-buildx-action dependency-version: 4.4.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ith 5 updates (paradigmxyz#1714) chore(deps): bump the api-rs-dependencies group Bumps the api-rs-dependencies group in /services/api-rs with 5 updates: | Package | From | To | | --- | --- | --- | | [aws-smithy-types](https://github.com/smithy-lang/smithy-rs) | `1.6.3` | `1.6.4` | | [clap](https://github.com/clap-rs/clap) | `4.6.6` | `4.6.7` | | [jiff](https://github.com/BurntSushi/jiff) | `0.2.35` | `0.2.37` | | [jsonwebtoken](https://github.com/Keats/jsonwebtoken) | `11.0.0` | `11.1.0` | | [rustls](https://github.com/rustls/rustls) | `0.23.44` | `0.23.45` | Updates `aws-smithy-types` from 1.6.3 to 1.6.4 - [Release notes](https://github.com/smithy-lang/smithy-rs/releases) - [Changelog](https://github.com/smithy-lang/smithy-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/smithy-lang/smithy-rs/commits) Updates `clap` from 4.6.6 to 4.6.7 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/main/CHANGELOG.md) - [Commits](clap-rs/clap@clap_complete-v4.6.6...clap_complete-v4.6.7) Updates `jiff` from 0.2.35 to 0.2.37 - [Release notes](https://github.com/BurntSushi/jiff/releases) - [Changelog](https://github.com/BurntSushi/jiff/blob/jiff-static-0.2.37/CHANGELOG.md) - [Commits](BurntSushi/jiff@jiff-static-0.2.35...jiff-static-0.2.37) Updates `jsonwebtoken` from 11.0.0 to 11.1.0 - [Changelog](https://github.com/Keats/jsonwebtoken/blob/master/CHANGELOG.md) - [Commits](Keats/jsonwebtoken@v11.0.0...v11.1.0) Updates `rustls` from 0.23.44 to 0.23.45 - [Release notes](https://github.com/rustls/rustls/releases) - [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md) - [Commits](rustls/rustls@v/0.23.44...v/0.23.45) --- updated-dependencies: - dependency-name: aws-smithy-types dependency-version: 1.6.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api-rs-dependencies - dependency-name: clap dependency-version: 4.6.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api-rs-dependencies - dependency-name: jiff dependency-version: 0.2.37 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api-rs-dependencies - dependency-name: jsonwebtoken dependency-version: 11.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: api-rs-dependencies - dependency-name: rustls dependency-version: 0.23.45 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api-rs-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…in the harness-server-dependencies group (paradigmxyz#1712) chore(deps): bump clap Bumps the harness-server-dependencies group in /crates/harness-server with 1 update: [clap](https://github.com/clap-rs/clap). Updates `clap` from 4.6.6 to 4.6.7 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/main/CHANGELOG.md) - [Commits](clap-rs/clap@clap_complete-v4.6.6...clap_complete-v4.6.7) --- updated-dependencies: - dependency-name: clap dependency-version: 4.6.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: harness-server-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…th 2 updates (paradigmxyz#1711) chore(deps): bump the ruby-dependencies group Bumps the ruby-dependencies group in /services/console with 2 updates: [jwt](https://github.com/jwt/ruby-jwt) and [fugit](https://github.com/floraison/fugit). Updates `jwt` from 3.2.0 to 3.3.0 - [Release notes](https://github.com/jwt/ruby-jwt/releases) - [Changelog](https://github.com/jwt/ruby-jwt/blob/main/CHANGELOG.md) - [Commits](jwt/ruby-jwt@v3.2.0...v3.3.0) Updates `fugit` from 1.13.0 to 1.14.0 - [Changelog](https://github.com/floraison/fugit/blob/master/CHANGELOG.md) - [Commits](floraison/fugit@v1.13.0...v1.14.0) --- updated-dependencies: - dependency-name: jwt dependency-version: 3.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: fugit dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ruby-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Lockstep fast-forward for the chart 0.1.125 -> 0.1.144 deployment bump. 136 upstream commits, merged clean. Fork delta preserved: the MOO-534 openssh-client line in services/sandbox/Dockerfile. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
Lockstep fast-forward for the chart 0.1.125 → 0.1.144 deployment bump (companion PRs: moonwell-fi/centaur-moonwell#71 sandbox image, and a centaur-infra PR pinning chart/base-ref/images to this sync). 136 upstream commits (af72296 → f97c821, 2026-08-21 → 2026-09-21), merged clean.
Notables for the deployment:
10.43.0.0/16(k3s Service CIDR) fromironProxy.upstreamDenyCidrs; NetworkPolicy is now the stated boundary (infra will restore the CIDR explicitly for now).apiRs.sessionPrincipalAdmission(keepautomatic), feat: add MCP service listing behind mcpv2 flag paradigmxyz/centaur#1623mcpV2Enabled(off), fix(k8s): own iron-proxy resources and reap orphans paradigmxyz/centaur#1529 api-rs owns/reaps iron-proxy resources.CREATE INDEX CONCURRENTLYfirst).console.chat.enabled, default true).slack_dm_sync_cursors(additive),allow_scheduled_tasks_without_schedule(one-way in practice).Fork delta preserved and verified:
git diff f97c8219 --statafter the merge shows exactly one file,services/sandbox/Dockerfile(the MOO-534openssh-clientline). Python workflow SDK surface used by the overlay is unchanged (additiveslack_buttons/update_slackonly).Please merge with a merge commit (not squash) so the sync sha
01160f6dstays reachable.🤖 Generated with Claude Code