Skip to content

Merge Paradigm Centaur upstream through #1126 - #87

Merged
GoonMachine merged 26 commits into
mainfrom
codex/upstream-sync-20260719-1126
Jul 19, 2026
Merged

Merge Paradigm Centaur upstream through #1126#87
GoonMachine merged 26 commits into
mainfrom
codex/upstream-sync-20260719-1126

Conversation

@fineas-bot

@fineas-bot fineas-bot Bot commented Jul 19, 2026

Copy link
Copy Markdown

Summary

Merge Paradigm 22a036b8 into TipLink ad668981 and adopt the upstream implementation through paradigmxyz#1126. The integration is a GitHub-signed two-parent merge commit, so upstream lineage remains explicit.

This adopts upstream workflow-scoped principals, platform-aware session context, Slack strategy/Block Kit dispatch, Console performance and authentication improvements, image handling, Linear fixes, Google Cloud CLI support, workflow analytics dependencies, and security/dependency updates. Conflict resolution starts from the upstream structures and reapplies only active Fineas deployment and security boundaries.

The full reconciliation and rollout contract is documented in docs/UPSTREAM_SYNC_20260719.md.

Sensitive permission audit

  • Public Slack threads and explicitly shared Console chats remain readable but owner-only writable. Both composer rendering and POST authorization reject non-owner replies.
  • Session context authorization runs before Slack, Discord, Linear, or GitHub metadata is returned.
  • Workflow principal JWTs cannot list schedules or emit global workflow events; that remains service-credential-only.
  • The upstream workflow-scoped principal model replaces the shared-principal workaround. The dedicated compliance opt-in and grant migration are separate companion PRs.
  • Installing gcloud/bq adds no host ADC or generic Google grant. The standard G Suite and privileged compliance Drive credentials remain separate.
  • Upstream BigQuery/psycopg additions are reflected in our fork's frozen uv.lock; uv sync --locked passes.
  • No database migration is introduced by this upstream range.

Legacy removed or superseded

  • Slack execution uses upstream's message-override strategy instead of carrying a parallel flag parser.
  • Session platform parsing uses upstream ChatDestination rather than restoring the removed Slack-only helper.
  • The Console test helper now uses the shared singleton-method wrapper instead of its duplicate implementation.
  • Patch-equivalent upstream behavior is adopted directly; no fork-local alternative was retained for the upstream fixes listed above.

Validation

  • cargo fmt --check
  • cargo test -p centaur-api-server -p centaur-workflows — 188 passed
  • Console: 1,285 tests / 4,886 assertions, 0 failures; 34 schema-dependent skips
  • Console security: Brakeman 0 warnings; importmap audit clean; RuboCop 0 offenses; bundler-audit clean
  • Slackbot: typecheck; 219 passed / 1 skipped
  • Linearbot: 103 passed
  • Overlay-independent Python: SDK 24 passed; workflow host 13 passed; Discord 13 passed
  • uv sync --project services/workflow-python --locked
  • Helm dependency build, overlay compatibility test, lint, and render
  • git diff --check and conflict-marker audit

Rollout gate

  1. Merge/publish this base change.
  2. Merge/publish the companion overlay scoped-principal opt-in.
  3. Confirm workflow-compliance-cdd-research is registered.
  4. Only then apply the companion infra reconciliation and run a controlled CDD verification.

Do not collapse this sequence into an infra-first rollout.

decofe and others added 26 commits July 16, 2026 00:08
…it just put a PR up (paradigmxyz#959)

Co-authored-by: Gerard <289036782+splits-gerard@users.noreply.github.com>
Keep the sidebar and default chat selection scoped to chats owned by
the signed-in user.

Allow users to continue public and explicitly shared chats when the
existing access policy permits them.
* feat: add LLM message override strategy

* fix: log LLM message override failures

* fix: classify overrides from Slack prompt text

* Revert "fix: classify overrides from Slack prompt text"

This reverts commit 0f553e6.

* chore: bump Helm chart version

* fix: avoid logging override response bodies

* fix: map OpenAI key for Slackbot overrides

* fix: make Slackbot OpenAI key optional

* fix: align LLM sonnet model alias

* fix: support explicit sonnet 5 override

* fix: keep Slack override retries idempotent

* fix: log successful override strategy responses
* fix: reduce slack override strategy log noise

* refactor: accept full logger for slack override strategy
* feat: add workflow-scoped principals

* feat: add workflow host sandbox helm value

* chore: bump centaur chart

* fix: default workflow host sandbox chart value off

* fix: fail closed for workflow principals

* fix: label workflow principals by kind

* fix: simplify workflow principal labels
* fix: attach Laminar traces to thread roots

* fix: use thread root for Codex OTLP fallback
* fix: install workflow analytics dependencies

* fix: avoid apt packaging uninstall in workflow images
@fineas-bot

fineas-bot Bot commented Jul 19, 2026

Copy link
Copy Markdown
Author

CI follow-up: the first Rust gate caught clippy::await_holding_lock in the new session-context authorization test. I replaced the test-only std::sync::Mutex with an async-aware tokio::sync::Mutex, then ran the exact cargo fmt --check and cargo clippy --workspace --all-targets -- -D warnings gate successfully. The follow-up is GitHub-verified commit 88a58b62; no production authorization behavior changed.

@GoonMachine
GoonMachine merged commit 54c79d3 into main Jul 19, 2026
39 checks passed
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.

7 participants