Repository navigation
Sync upstream main (6a4c7c11) - #69
Merged
Merged
Conversation
* feat(company-context): ingest Google Docs from Drive * docs(company-context): make Drive rescan explicit * fix(company-context): reuse embeddings for unchanged chunks * fix(company-context): harden Google Docs backfill and export * chore(company-context): revert chart comment change
* feat: apply per-turn reasoning effort to Claude Code Co-authored-by: decofe <256792747+decofe@users.noreply.github.com> * fix(harness-server): apply Claude Code reasoning effort per turn * fix(slackbotv2): validate Claude Code effort against the selected model * chore: revert chart values comment change --------- Co-authored-by: Matthew Slipper <me@matthewslipper.com>
…igmxyz#1804) Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
…ies with 2 updates (paradigmxyz#1808) Bumps the typescript-dependencies group with 2 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [dotenv](https://github.com/motdotla/dotenv). Bumps the typescript-dependencies group with 1 update in the /packages/harness-events directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Bumps the typescript-dependencies group with 1 update in the /packages/rendering directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Bumps the typescript-dependencies group with 1 update in the /services/discordbot directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Bumps the typescript-dependencies group with 1 update in the /services/githubbot directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Bumps the typescript-dependencies group with 1 update in the /services/linearbot directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Bumps the typescript-dependencies group with 1 update in the /services/slackbotv2 directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Bumps the typescript-dependencies group with 2 updates in the /services/teamsbot directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [dotenv](https://github.com/motdotla/dotenv). Updates `@types/node` from 26.6.2 to 26.6.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `dotenv` from 18.0.3 to 18.0.4 - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](motdotla/dotenv@v18.0.3...v18.0.4) Updates `@types/node` from 26.6.2 to 26.6.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/node` from 26.6.2 to 26.6.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/node` from 26.6.2 to 26.6.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/node` from 26.6.2 to 26.6.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/node` from 26.6.2 to 26.6.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/node` from 26.6.2 to 26.6.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/node` from 26.6.2 to 26.6.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `dotenv` from 18.0.3 to 18.0.4 - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](motdotla/dotenv@v18.0.3...v18.0.4) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 26.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: dotenv dependency-version: 18.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: "@types/node" dependency-version: 26.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: "@types/node" dependency-version: 26.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: "@types/node" dependency-version: 26.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: "@types/node" dependency-version: 26.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: "@types/node" dependency-version: 26.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: "@types/node" dependency-version: 26.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: "@types/node" dependency-version: 26.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: dotenv dependency-version: 18.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typescript-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…e docs-dependencies group (paradigmxyz#1806) chore(deps-dev): bump wrangler in /docs in the docs-dependencies group Bumps the docs-dependencies group in /docs with 1 update: [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `wrangler` from 4.140.0 to 4.141.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.141.0/packages/wrangler) --- updated-dependencies: - dependency-name: wrangler dependency-version: 4.141.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: docs-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…_context v2 (paradigmxyz#1809) * feat(company-context): grant reader role scoped access to Drive documents * feat(company-context): retrieve Drive documents from the company-context service * feat(company-context): gate service Drive retrieval behind a v2 subcommand * feat(company-context): add v2 status command and help text * refactor(company-context): move v2 Drive retrieval into its own module * test(company-context): cover cross-user, shared, and blank subject visibility
…yz#1813) Deploy proxy-sync unconditionally and require IRON_CONTROL_PROXY_SYNC_URL for agent-k8s sandboxes instead of falling back to Console's sync endpoint.
…cess source (paradigmxyz#1815) Drop the unused google_drive_document_access ACL table and move google_drive_broker_observations into company_context_data so the system schema stays internal to the service.
* refactor(sandbox): make running limit admission-only * chore(chart): bump version to 0.1.153 * fix(sandbox): exclude ready warm sandboxes from admission limit * chore(chart): bump version to 0.1.154
iron-proxy 0.51.0 rejects every client set_config call on proxied Postgres connections, so company_context query failed before running the user's SQL. SET LOCAL statement_timeout is equivalent and allowed. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…mxyz#1817) * fix(chart): allow Postgres egress when using an external database * feat(console): use built-in PostgreSQL full-text search for skills Drop the ParadeDB pg_search dependency so Console runs on stock and managed PostgreSQL such as RDS and Cloud SQL. Local development and CI now use postgres:16. * feat(api-rs): allow iron-proxy egress to an external core database KUBERNETES_IRON_PROXY_DATABASE_CIDRS and _PORT add a per-sandbox proxy egress rule to the database's private ranges, which the public-upstream rule excludes. * feat(chart): scope external Postgres egress to postgres.external.cidrs Replace the any-host 5432 rule with ipBlock rules on postgres.external.port, fail rendering when network policies are enabled without CIDRs, and pass the ranges to api-rs for per-sandbox iron-proxy policies. * refactor(chart): move external Postgres egress settings to externalDatabase Keep postgres.* about the bundled server and fail when externalDatabase.cidrs is set while the bundled Postgres is enabled.
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
…z#1824) * feat(api-rs): make ParadeDB an opt-in text search backend Core migrations no longer require pg_search, so api-rs runs on stock PostgreSQL with pgvector. Keyword-search indexes now come from one backend per database, selected by DATABASE_TEXT_SEARCH (paradedb by default): search-migrations/paradedb adopts the existing BM25 indexes and search-migrations/postgres adds tsvector columns with GIN indexes. Backend migrations share the core version sequence and merge into it by version. The six edited core migrations present their previously recorded checksums, so existing databases validate unchanged. Startup refuses a backend that differs from the one a database was migrated with. CI checks numbering across all migration directories, and database tests cover fresh installs, every upgrade path, and legacy BM25 databases on both ParadeDB and plain PostgreSQL. * feat(chart): select the text search backend for external databases externalDatabase.textSearch defaults to postgres so an external server such as RDS or Cloud SQL needs no pg_search. The bundled ParadeDB keeps the paradedb backend. * feat(company-context): search with built-in PostgreSQL full-text search Detect the text-search backend from the database and use tsvector matching and ts_rank when the ParadeDB BM25 indexes are absent. * fix(api-rs): refuse the postgres backend while BM25 indexes remain Databases migrated before the backends split carry BM25 indexes that can be large. Fail startup with the index names instead of dropping them, so the operator keeps them with paradedb or drops them deliberately. * test(api-rs): replace per-version upgrade runs with legacy adoption tests Migrating a new database once per version cost minutes and added little beyond one fresh run per backend. Cover databases from before the split directly instead. * fix(api-rs): detect BM25 indexes left on renamed Slack DM tables A database stopped before core migration 0045 still has BM25 indexes on the slack_dm_* tables, which 0045 now renames without rebuilding. The postgres backend's adoption check looked only at current table names, so those indexes survived adoption. Check the pre-rename names too. Legacy tests now replay the real pre-split migrations, kept as fixtures for the six edited files, from both the last release and before 0045. * refactor(api-rs): drop pre-0045 upgrade handling Every deployed database is past core migration 0045, so the Slack DM index cleanup, the pre-rename table names in the postgres adoption check, and the legacy test stopped at 0044 cover no real database. * test(api-rs): pin released core migrations and drop test databases on failure The six edited core migrations present their legacy checksums, so SQLx cannot notice later edits to them, and the legacy adoption tests rebuild pre-split databases from the current files. Pin the SHA-384 of every released core migration (1-55). Failed assertions no longer skip test database cleanup. * ci: require every text-search backend to carry each backend version Backends are mutually exclusive, so a migration in one backend directory needs a counterpart, possibly a no-op, in the other. Enforce it in the migration order check and a unit test, and document that shared test databases use the postgres backend. * fix(chart): let apiRs.extraEnv override DATABASE_TEXT_SEARCH * docs: run host api-rs on pgvector with built-in text search postgres:16 lacks pgvector, which core migrations need, and has no pg_search for the default paradedb backend. * docs: describe running Centaur on an external PostgreSQL Cover server requirements, databases and secrets, chart values, NetworkPolicy CIDRs, and the text-search backend choice in the production deployment guide, and link them from the configuration reference. * docs: drop company-context ingestion note from external database guide * fix(chart): reject externalDatabase.textSearch with the bundled Postgres The setting was silently ignored while postgres.enabled=true. Default it to empty, which selects postgres for external databases, and fail rendering when it is set for the bundled Postgres, like externalDatabase.cidrs. * feat(api-rs): add a migrate subcommand centaur-api-server migrate --database-url <url> --text-search <backend> applies migrations with the same checks as startup and exits. It takes only flags and none of the server configuration, so an operator can migrate an external database separately, for example with an administrator account while api-rs runs with RUN_MIGRATIONS=false. * docs: describe changing text search backends as migrate-then-copy A database that has run a backend migration cannot switch in place, so the guide, values comment, and BM25 error no longer suggest dropping indexes to switch. Describe migrating a fresh database and copying the data into it instead.
* feat(company-context): ingest Granola notes and transcripts * feat(chart): configure company-context Granola sync * chore(chart): bump version to 0.1.158 * refactor(company-context): leave Granola transcripts to the Granola tool * fix(company-context): extend task leases while tasks run
…ies with 2 updates (paradigmxyz#1836) Bumps the typescript-dependencies group with 2 updates in the / directory: [@linear/sdk](https://github.com/linear/linear) and [hono](https://github.com/honojs/hono). Bumps the typescript-dependencies group with 1 update in the /services/discordbot directory: [hono](https://github.com/honojs/hono). Bumps the typescript-dependencies group with 1 update in the /services/githubbot directory: [hono](https://github.com/honojs/hono). Bumps the typescript-dependencies group with 2 updates in the /services/linearbot directory: [@linear/sdk](https://github.com/linear/linear) and [hono](https://github.com/honojs/hono). Bumps the typescript-dependencies group with 1 update in the /services/slackbotv2 directory: [hono](https://github.com/honojs/hono). Updates `@linear/sdk` from 96.0.0 to 97.0.0 - [Release notes](https://github.com/linear/linear/releases) - [Commits](https://github.com/linear/linear/compare/@linear/sdk@96.0.0...@linear/sdk@97.0.0) Updates `hono` from 4.13.9 to 4.13.10 - [Release notes](https://github.com/honojs/hono/releases) - [Commits](honojs/hono@v4.13.9...v4.13.10) Updates `hono` from 4.13.9 to 4.13.10 - [Release notes](https://github.com/honojs/hono/releases) - [Commits](honojs/hono@v4.13.9...v4.13.10) Updates `hono` from 4.13.9 to 4.13.10 - [Release notes](https://github.com/honojs/hono/releases) - [Commits](honojs/hono@v4.13.9...v4.13.10) Updates `@linear/sdk` from 96.0.0 to 97.0.0 - [Release notes](https://github.com/linear/linear/releases) - [Commits](https://github.com/linear/linear/compare/@linear/sdk@96.0.0...@linear/sdk@97.0.0) Updates `hono` from 4.13.9 to 4.13.10 - [Release notes](https://github.com/honojs/hono/releases) - [Commits](honojs/hono@v4.13.9...v4.13.10) Updates `hono` from 4.13.9 to 4.13.10 - [Release notes](https://github.com/honojs/hono/releases) - [Commits](honojs/hono@v4.13.9...v4.13.10) --- updated-dependencies: - dependency-name: "@linear/sdk" dependency-version: 97.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: typescript-dependencies - dependency-name: hono dependency-version: 4.13.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: hono dependency-version: 4.13.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: hono dependency-version: 4.13.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: "@linear/sdk" dependency-version: 97.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: typescript-dependencies - dependency-name: hono dependency-version: 4.13.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typescript-dependencies - dependency-name: hono dependency-version: 4.13.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typescript-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…e docs-dependencies group (paradigmxyz#1835) chore(deps-dev): bump wrangler in /docs in the docs-dependencies group Bumps the docs-dependencies group in /docs with 1 update: [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `wrangler` from 4.141.0 to 4.143.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.143.0/packages/wrangler) --- updated-dependencies: - dependency-name: wrangler dependency-version: 4.143.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: docs-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ith 2 updates (paradigmxyz#1833) * chore(deps): bump the docker-base-images group across 6 directories with 2 updates Bumps the docker-base-images group with 1 update in the /services/discordbot directory: oven/bun. Bumps the docker-base-images group with 1 update in the /services/githubbot directory: oven/bun. Bumps the docker-base-images group with 1 update in the /services/linearbot directory: oven/bun. Bumps the docker-base-images group with 1 update in the /services/sandbox directory: ubuntu. Bumps the docker-base-images group with 1 update in the /services/slackbotv2 directory: oven/bun. Bumps the docker-base-images group with 1 update in the /services/teamsbot directory: oven/bun. Updates `oven/bun` from 1.3.13-slim to 1.4.2-slim Updates `oven/bun` from 1.3.13-slim to 1.4.2-slim Updates `oven/bun` from 1.3.13-slim to 1.4.2-slim Updates `ubuntu` from 24.04 to 26.04 Updates `oven/bun` from 1.3.13-slim to 1.4.2-slim Updates `oven/bun` from 1.3.13-slim to 1.4.2-slim --- updated-dependencies: - dependency-name: oven/bun dependency-version: 1.4.2-slim dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docker-base-images - dependency-name: oven/bun dependency-version: 1.4.2-slim dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docker-base-images - dependency-name: oven/bun dependency-version: 1.4.2-slim dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docker-base-images - dependency-name: ubuntu dependency-version: '26.04' dependency-type: direct:production dependency-group: docker-base-images - dependency-name: oven/bun dependency-version: 1.4.2-slim dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docker-base-images - dependency-name: oven/bun dependency-version: 1.4.2-slim dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docker-base-images ... Signed-off-by: dependabot[bot] <support@github.com> * fix: keep sandbox on ubuntu 24.04 and skip ubuntu major bumps * chore: ignore rails 8.1.4 in dependabot --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matthew Slipper <me@matthewslipper.com>
…z#1841) * feat(slackbotv2): select persona from channel defaults * refactor(sandbox): slim base prompt and move engineering guidance to eng persona * refactor: move eng persona guidance into observability and PR skills * revert: restore original eng persona prompt * feat(slackbotv2): trace persona source and share persona id pattern * chore(chart): bump version to 0.1.159
…in (paradigmxyz#1842) * chore: update brakeman to 8.1.0 and skip latest-version check on PRs * ci: only enforce latest brakeman on pushes to main
…digmxyz#1738) * fix(sandbox): stop claudecode loading the composed prompt twice Claude Code >= 2.1.277 reads a bare workspace AGENTS.md as project instructions whenever no CLAUDE.md exists, so on current images the composed system prompt loaded twice: once via --append-system-prompt-file and once as memory (~25k extra tokens per cold session, measured in the issue). When AGENT_REPO was set, the composed file also overwrote the repository's own AGENTS.md. - Bake pluginConfigs.agents-md@builtin instructionFiles=claude-md into the shipped claude settings so AGENTS.md is never read as project instructions and the prompt arrives exactly once via the flag - When the workspace repo tracks its own AGENTS.md, compose the Centaur prompt to $HOME/.centaur/AGENTS.md instead (also mirrored to ~/.codex/AGENTS.md as codex global scope) so the repo file is never clobbered and git status stays clean - claude.rs probes the composed path first and falls back to workspace AGENTS.md; the amp AGENT.md symlink follows the real composed path codex keeps its native workspace AGENTS.md channel in the no-repo case, so its prompt delivery is unchanged. Fixes paradigmxyz#1722 Signed-off-by: Delweng <delweng@gmail.com> * fix(sandbox): limit claudecode prompt fix to settings Keep only the agents-md instructionFiles=claude-md setting, which stops Claude Code from reading the composed workspace AGENTS.md as project instructions. Revert the relocated prompt path, which dropped the Centaur prompt for nanocodex and amp when the repo ships AGENTS.md. --------- Signed-off-by: Delweng <delweng@gmail.com> Co-authored-by: Matthew Slipper <me@matthewslipper.com>
…adigmxyz#1846) api-rs validates harness_type through HarnessType on every write and read, so the database allowlist only forced a migration (and merge-order coordination) for each new harness.
…#1845) * feat: select firewall CA entries within existing Secrets * chore(chart): bump version to 0.1.160
fix: late-file repair webhooks
…nnels (paradigmxyz#1972) * feat(company-context): let Slack conversation members read synced channels * fix(company-context): match Slack readers by workspace and user ID
…paradigmxyz#2008) * refactor: share Console credential config building in a console-db crate Move proxy-sync's credential loading, conflict suppression, and proxy config building into crates/console-db so other Rust services can build a principal's config from Console's schema. proxy-sync keeps its proxy lookup, minted tokens, and config hash. * feat: read Console principals and effective config directly in api-rs api-rs reads principals and their redacted effective config from Console's database through read-only sessions when IRON_CONTROL_DATABASE_URL is set, and skips principal and Slack permission upserts that would change nothing. Writes still go through the Console API. * fix: test console-db only in the Console-schema CI job * refactor: rename console-db to centaur-console-db * fix: treat whitespace-only Slack DM emails as blank, like Console * chore: use workspace settings in centaur-console-db and drop proxy-sync's unused rand * feat: require the Console database in api-rs * fix: fail Console database reads fast when the database is unreachable * docs: note api-rs and proxy-sync read the Console database
) An interrupted turn completed whenever final-answer text had accumulated, and that text included commentary-phase agent-message deltas. Map an interrupted status to cancellation unconditionally, and remove an agent message's deltas from the final-answer text when it completes as commentary, in both the live and replay folds. Co-authored-by: Matthew Slipper <me@matthewslipper.com>
…aradigmxyz#1957) * fix(harness-server): resume Codex after subprocess disconnects * test(harness-server): use shared fake app-server for Codex recovery tests --------- Co-authored-by: ecejas <ernesto@polymarket.com> Co-authored-by: Matthew Slipper <me@matthewslipper.com>
…mxyz#1937) repo-cache only installed GIT_ASKPASS when the token file was non-empty on the first git call, and the env is cached for the process. A token Secret filled after the pod started (External Secrets, a rotator) was never used until a restart. Always install the askpass script and check the file inside it. Co-authored-by: Mike Leung <2996848+mleungdev@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
darkmatter
Bot
force-pushed
the
sync/upstream-main
branch
from
October 22, 2026 02:03
f37c2f4 to
ddecab1
Compare
…paradigmxyz#2037) * feat: let admins create and edit static secrets and workflow principals from their DM * refactor: refuse raw secret values in DM secret writes and support pg_dsn secrets
darkmatter
Bot
force-pushed
the
sync/upstream-main
branch
from
October 22, 2026 20:03
b164fcf to
6a4c7c1
Compare
Merge paradigmxyz/centaur main 6a4c7c1 into darkmatter/centaur main 2492108. The previous sync (#64) was squash-merged, so conflicts were resolved against the effective base 05e6ec8: adopt upstream's root Cargo workspace layout, keep the fork's deployed migration numbering and core-migration-overrides, renumber upstream 0060 to 0065, keep the fork OMP stack and deployment customizations.
darkmatter Bot
pushed a commit
that referenced
this pull request
Oct 23, 2026
Records upstream 6a4c7c1 as an ancestor of product main. Product base 5449311 is the squash of #69, whose tree (ab9cae5) is byte-identical to the reviewed merge ad9fb9b of this same upstream tip. Against that effective base the upstream delta is empty, so all 92 raw conflicts take #69's per-hunk resolutions, and the stale-base (e54c700) auto-merge resurrections are reverted: upstream-numbered duplicate migrations 0045/0057-0060 and search 0056, OMP 18 omp_stdio.rs + fixtures, the unused hex dependency, and a duplicated api-rs AGENTS.md paragraph.
darkmatter Bot
pushed a commit
that referenced
this pull request
Oct 23, 2026
Product base 5449311 is the squash of PR #69, whose tree is identical to that PR's merge commit (parents 2492108 + upstream 6a4c7c1). Because the squash dropped upstream ancestry, git replays ~100 already-resolved conflicts from merge-base e54c700. Every replayed conflict keeps the reviewed #69 resolution; the only new upstream change, 7047bd8 (chore: update deps paradigmxyz#2044), is applied on top: - Cargo.lock: rustls-webpki 0.103.15 -> 0.103.16 (fork keeps its extra 0.101.7 entry; versioned dependent refs updated), webpki-root-certs 1.0.9 -> 1.0.10 - crates/harness-server-conformance/Cargo.lock: same bumps - services/{discordbot,githubbot,linearbot,slackbotv2,teamsbot}/Dockerfile: oven/bun 1.4.3 -> 1.4.4 - e2e/infra/{fake-slack,model-server}.yaml: oven/bun 1.4.2 -> 1.4.4
darkmatter Bot
added a commit
that referenced
this pull request
Oct 23, 2026
Merge upstream 12a4c3f into product main 5449311. Product main already contains upstream through 6a4c7c1 via the squash of #69, so conflicts were resolved against 6a4c7c1 as the effective base: fork-only behavior is preserved and only the upstream delta 6a4c7c1..12a4c3f (paradigmxyz#2044 dep bumps, paradigmxyz#2045 company-context readiness) is applied. Manual resolution: Cargo.lock keeps the fork's dependency graph and applies upstream's rustls-webpki 0.103.16 / webpki-root-certs 1.0.10 bumps.
darkmatter Bot
pushed a commit
that referenced
this pull request
Oct 23, 2026
Product base: 5449311 Upstream tip: 0738d09 Product main already contains upstream through 6a4c7c1 via the squashed sync #69, so git's ancestry merge base (e54c700) is stale and reported 103 spurious conflicts. Resolution applies the 6 new upstream commits (6a4c7c1..0738d09) on top of product main using 6a4c7c1 as the effective base; Darkmatter-only content is unchanged. Resolved: Cargo.lock (keep fork rustls-webpki 0.101.7; take upstream rustls-webpki 0.103.15 -> 0.103.16 and webpki-root-certs 1.0.10).
darkmatter Bot
pushed a commit
that referenced
this pull request
Oct 24, 2026
Merge paradigmxyz/centaur@1afdc0d into 19722ed. Product main already carries upstream through 6a4c7c1 via squash sync #69, so conflicts were resolved against that effective base: Darkmatter's deployed migration numbering, OMP harness, chart, and sandbox customizations are kept, and the seven newer upstream commits (paradigmxyz#2036, paradigmxyz#2038, paradigmxyz#2044, paradigmxyz#2045, paradigmxyz#2048, paradigmxyz#2050, paradigmxyz#2053) are applied on top. Cargo.lock keeps the fork's extra rustls-webpki 0.101.7 entry and takes upstream's 0.103.16 and webpki-root-certs 1.0.10 bumps.
darkmatter Bot
pushed a commit
that referenced
this pull request
Oct 25, 2026
Conflicts resolved against the last synced upstream commit 6a4c7c1 (the content base of the squash-merged #69 sync), preserving all Darkmatter fork changes and applying all upstream changes from 6a4c7c1..1afdc0d. Cargo.lock: kept fork rustls-webpki 0.101.7, bumped 0.103.15 -> 0.103.16. harness-server-conformance/Cargo.lock: refreshed so --locked resolves the fork's harness-server sha2 0.11 dependency.
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.
Caution
Only a human may merge this PR. Automation never merges it.
Merge with a merge commit (“Create a merge commit”). Merge-commit ancestry is required. Do NOT squash or rebase. The upstream tip must become an ancestor of
darkmatter/centaur:mainso later sync, image, and GitOps stages can validate it. The previous sync (#64) was squash-merged, somaindoes not contain upstream05e6ec8a. That is why this merge produced 182 raw conflicts.Upstream sync candidate
paradigmxyz/centaur:main6a4c7c113ec90e9c17e3e9bc74b33d2330583c66darkmatter/centaur:main24921080251120d833e27e8bdb0821abd13c7748sync/upstream-mainad9fb9b6c5d9f0e859eeebcb0724c2831e2a8205(merge commit; parents are base and upstream)This is a fresh
git merge --no-ffof the exact upstream tip onto the exact product base. It replaces the raw candidate6a4c7c11with--force-with-lease.Status: ready for human review.
How conflicts were resolved
Git's merge base is
e54c7000, which is stale because #64 was squashed. The fork already contains upstream through05e6ec8a. Each conflict was reasoned three-way against that effective base, with true upstream delta =05e6ec8a..6a4c7c11(58 commits). The reference result wasgit merge-tree --merge-base=05e6ec8a.The stale-base auto-merge had also silently resurrected two things, and both were reverted to the correct three-way result:
0012,0028,0029,0030and0040, which would have changed their applied checksums;tests/omp_stdio.rsand its fixtures, which the fork removed in Sync upstream main (05e6ec8a) #64.All 182 raw conflicted paths were resolved per hunk. None was resolved by taking one side wholesale. 86 still conflicted against the correct base, and those were resolved by hand.
Layout (upstream paradigmxyz#2009)
members = ["crates/*"]and one rootCargo.lock.services/api-rs/crates/*,services/company-context/srcandservices/proxy-sync/srcmove tocrates/*. Sub-workspace lockfiles are removed.05e6ec8a, so nothing was lost. The proxy-sync conflict code now lives incrates/centaur-console-db.crates/centaur-console-dbis kept as upstream's new crate. Git mis-detected it as a rename of the deleted integration-test crate.Cargo.tomlkeeps the fork'saws-config/aws-sdk-s3for the S3 transcript archive.Cargo.lockis upstream's lock plus the fork's aws stack at its existing versions; no upstream package version changed.session-sqlx / migrations (
crates/centaur-session-sqlx/**,.github/scripts/check-migration-order.sh)main.migrations.lockis append-only.0048supersedes.0060_slack_external_team_allowlist, becomes0065and is appended to the lock.core-migration-overrides/mechanism is kept at its new path. Upstream'stests/fixtures/legacy-migrationsare dropped because they are byte-identical to fork originals that the fork tests already use.harness-server (
src/{claude,codex,lib,main,omp,pi,server,traits}.rs,codex/citations.rs,Cargo.toml,tests/app_server_stdio.rs, conformanceCargo.lock,docs/pages/extend/omp-harness.mdx, the harness-development skill)omp.rs+omp_rpc.rs, OMP 17.0.5) remains the only OMP implementation. Upstream's only post-05e6ec8achange toomp.rswas an import.crate::protocoltypes replace the codex protocol crates, soomp.rs/omp_rpc.rsimports were updated and the validate-* subcommands dropped.api-rs crates (
centaur-api-server/src/{args,auth,lib,main,routes,tool_discovery}.rs,sandbox-manager,session-cli,session-core,session-runtime,telemetry,services/api-rs/AGENTS.md)HarnessType::Omp.company-context / proxy-sync / tools (
crates/centaur-company-context/**,crates/centaur-proxy-sync/**,tools/productivity/company_context/**,tools/productivity/slack/tests/test_client.py,.agents/skills/company-context,contrib/chart/templates/company-context.yaml)05e6ec8aexceptconftest.py. That file merges upstream's paths with the fork's core-migration override loader.chart / CI / docs / e2e (
contrib/chart/{Chart.yaml,values.yaml,values.schema.json,templates/{apirs,console-worker,networkpolicy,slackbotv2}.yaml},.github/{workflows/ci.yml,workflows/publish-images.yml,dependabot.yml},.gitignore,docs/**,e2e/**, the e2e-testing and qa skills)paradedbtext-search defaultSESSION_SANDBOX_DEFAULT_REPO_CACHE_ACCESSdatabaseUrlSecretKey/deriveDatabaseUrlompViewerUrlpromptPathand RuntimeClassOMP_MODELmirroringIRON_CONTROL_DATABASE_URLfollows the fork's derived-URL mode when it is enabled.push: mainandworkflow_dispatchtriggers.publish-images.ymlkeeps the darkmatter-owner skip.darkmatter-images.ymlnow also triggers on rootCargo.toml/Cargo.lock.JS services / sandbox / console (
services/{slackbotv2,discordbot,githubbot,linearbot,teamsbot}/{Dockerfile,package.json},slackbotv2/src/{index,server,types,response-context}.ts, its test,packages/*/package.json,pnpm-lock.yaml,services/iron-proxy/Dockerfile,services/sandbox/{Dockerfile,entrypoint.sh,SYSTEM_PROMPT.md,test_repo_cache_sync.py},services/console/{Gemfile.lock,README.md,lib/oauth/providers.rb})ompViewerUrland theOMP_MODELfooterValidation (local, merge commit
ad9fb9b6)git diff --check(base→merge) is clean, and no conflict markers remain. Parents are24921080and6a4c7c11..github/scripts/check-migration-order.sh 24921080passes. A separate byte-compare against old-pathmainconfirms all 71 released migration, search and override files are unchanged and that there are no duplicate versions.cargo fmt --all --check(stable and nightly) is clean.cargo clippy --locked --workspace --all-targets -D warningsis clean.rust-apiworkspace group passes, as do:session-runtimeDB tests: 152, on PG16 + pgvectorsession-sqlxon plain PG16 + pgvector: 27 + 11 + 1 + 5 + 2absurd-sdkDB tests: 7harness-server: 156 unit + 40 stdio (4 ignored) + 1 pibun testgives 320 pass, 1 skip.tsgois clean. githubbot gives 123 pass and its typecheck is clean.pnpm install --frozen-lockfilepasses.helm lintandhelm templatepass, including tokenBroker, derived-DB-URL and repo-cache variants. actionlint and YAML/JSON parsing pass.check-migration-order.shskips its base comparison on this PR because the base keeps migrations at the old path; the byte-compare above covers it.ci.ymlwas dispatched onsync/upstream-main.Recovery re-validation (repair re-run)
On the repair re-run, the remote head
ad9fb9b6was found and handled as a recovered prior attempt, so it was not overwritten. In a fresh clone:mainis24921080and upstream is6a4c7c11.ad9fb9b6is a merge commit whose parents are exactly those two.git diff --checkis clean and no conflict markers remain.Targeted checks were re-run on that commit:
check-migration-order.shpasses.cargo fmt --checkandclippy --locked --workspace --all-targets -D warningsare clean. Tests pass for:absurd-sdk(7)session-sqlxon PG16 + pgvector (27, 11, 1, 5, 2)session-runtimeDB tests (152)harness-server(156 + 40 + 1)pnpm install --frozen-lockfilepasses.bash -n entrypoint.shpasses, and pytest passes (29).helm lintandhelm templatepass, and the workflow, chart and schema files parse.ci.ymlwas dispatched again onsync/upstream-main.