Skip to content

fix(talk): resolve config from runtime secrets#72792

Open
haishmg wants to merge 3 commits into
openclaw:mainfrom
haishmg:codex/talk-config-secretref-72496
Open

fix(talk): resolve config from runtime secrets#72792
haishmg wants to merge 3 commits into
openclaw:mainfrom
haishmg:codex/talk-config-secretref-72496

Conversation

@haishmg

@haishmg haishmg commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Problem: talk.config could pass raw talk.providers.*.apiKey SecretRef wrappers into provider-specific config resolution.
  • Why it matters: Talk clients use talk.config for discovery, so a documented SecretRef-backed provider key could break discovery even though runtime Talk calls had the resolved secret.
  • What changed: talk.config now resolves provider details from the active runtime config before redacting the response, while still returning the source config redacted.
  • What did NOT change (scope boundary): no SecretRef schema, provider API, or client protocol changes.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor required for the fix
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

Root Cause (if applicable)

  • Root cause: the talk.config read-scope response was using the source config provider block as the input to resolveTalkConfig, even when the active runtime config already contained resolved SecretRef values.
  • Missing detection / guardrail: there was no regression test covering SecretRef-shaped talk.providers.*.apiKey values in the talk.config discovery path.
  • Contributing context (if known): talk.speak already used the runtime snapshot, so only the discovery/redaction path regressed.

Regression Test Plan (if applicable)

  • Coverage level that should have caught this:
    • Unit test
    • Seam / integration test
    • End-to-end test
    • Existing coverage already sufficient
  • Target test or file: src/gateway/server-methods/talk.test.ts
  • Scenario the test should lock in: talk.config redacts a source SecretRef while provider resolution receives the runtime-resolved string value.
  • Why this is the smallest reliable guardrail: it exercises the gateway handler seam without needing a live secrets backend or native Talk client.
  • Existing test that already covers this (if any): src/gateway/server.talk-config.test.ts covers redacted talk.config responses but not provider SecretRef resolution.
  • If no new test is added, why not: N/A

User-visible / Behavior Changes

talk.config succeeds for documented SecretRef-backed talk.providers.*.apiKey config instead of failing discovery.

Diagram (if applicable)

Before:
talk.config -> source provider config -> resolveTalkConfig(unresolved SecretRef) -> error

After:
talk.config -> runtime provider config -> resolveTalkConfig(resolved secret) -> redacted response

Security Impact (required)

  • New permissions/capabilities? (Yes/No) No
  • Secrets/tokens handling changed? (Yes/No) Yes
  • New/changed network calls? (Yes/No) No
  • Command/tool execution surface changed? (Yes/No) No
  • Data access scope changed? (Yes/No) No
  • If any Yes, explain risk + mitigation: the handler uses the active runtime-resolved secret only as input to provider-specific config normalization, then returns the existing redacted response shape. The regression test asserts both the source SecretRef and resolved provider config are redacted.

Repro + Verification

Environment

  • OS: macOS local checkout
  • Runtime/container: Node 22 / pnpm 10.33.0
  • Model/provider: stub Talk provider
  • Integration/channel (if any): Talk gateway RPC
  • Relevant config (redacted): talk.providers.acme.apiKey as a SecretRef object in source config and resolved string in runtime config

Steps

  1. Configure talk.providers.<id>.apiKey as a SecretRef object.
  2. Resolve runtime config through the active gateway snapshot.
  3. Call talk.config.

Expected

  • talk.config returns the Talk provider snapshot with secret fields redacted.

Actual

  • Before this fix, provider config resolution could see the unresolved SecretRef object and fail discovery.

Evidence

  • Failing test/log before + passing after
  • Trace/log snippets
  • Screenshot/recording
  • Perf numbers (if relevant)

Human Verification (required)

  • Verified scenarios: CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- test src/gateway/server-methods/talk.test.ts src/gateway/server.talk-config.test.ts
  • Edge cases checked: source SecretRef remains redacted; provider-specific resolved config remains redacted; existing talk.config coverage still passes.
  • What you did not verify: live iOS/macOS Talk client against a real ElevenLabs/OpenAI key.

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only the conversations that still need reviewer or maintainer judgment.

Compatibility / Migration

  • Backward compatible? (Yes/No) Yes
  • Config/env changes? (Yes/No) No
  • Migration needed? (Yes/No) No
  • If yes, exact upgrade steps: N/A

Risks and Mitigations

  • Risk: provider-specific config resolution could accidentally expose resolved secrets in the response.
    • Mitigation: keep the existing redaction pass on the returned payload and assert the response uses REDACTED_SENTINEL for both source and resolved config fields.

@haishmg

haishmg commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@openclaw-barnacle openclaw-barnacle Bot added gateway Gateway runtime size: S labels Apr 27, 2026
@greptile-apps

greptile-apps Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes a discovery regression where talk.config passed unresolved SecretRef objects into resolveTalkConfig because it prioritised the source (disk) config over the active runtime config. The fix is a single priority swap in resolveTalkResponseFromConfig (runtimeResolved?.config ?? sourceResolved?.config instead of the reverse), and a new integration-level test validates both that the source SecretRef stays redacted in the response and that the provider resolution receives the resolved string value.

Confidence Score: 5/5

Safe to merge — minimal one-line logic fix with correct test coverage and no security regressions.

The change is a single-line priority swap with a well-structured test that exercises the failure scenario. No P0/P1 issues found; the only observation is a dead mock setup line in the new test.

No files require special attention.

Prompt To Fix All With AI
This is a comment left during a code review.
Path: src/gateway/server-methods/talk.test.ts
Line: 130

Comment:
**Unused mock setup**

`mocks.getRuntimeConfig.mockReturnValue(runtimeConfig)` has no effect in this test. The `talk.config` handler reads runtime config via `context.getRuntimeConfig()`, which is provided inline as `{ getRuntimeConfig: () => runtimeConfig }` at line 162 — bypassing the hoisted mock entirely. Consider removing this line to avoid misleading future maintainers.

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "fix(talk): resolve config from runtime s..." | Re-trigger Greptile

Comment thread src/gateway/server-methods/talk.test.ts Outdated

@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: 2f9dbc469e

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/gateway/server-methods/talk.ts Outdated
@haishmg

haishmg commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the review notes in e78c17371c: removed the unused runtime-config mock setup and kept the resolved provider config paired with the selected provider when source/runtime snapshots diverge. Focused Talk tests pass locally:

CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- test src/gateway/server-methods/talk.test.ts src/gateway/server.talk-config.test.ts

@codex review latest head, please

@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: e78c17371c

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/gateway/server-methods/talk.ts Outdated
@haishmg

haishmg commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the unresolved Codex P1 in 42c758e9cd: when source and runtime Talk providers diverge, talk.config now returns the redacted source payload without feeding unresolved source SecretRefs into resolveTalkConfig. Local checks pass: focused talk gateway test, format/lint on touched files, and check:changed. @codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

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

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@haishmg haishmg force-pushed the codex/talk-config-secretref-72496 branch from 42c758e to 006dfb2 Compare April 28, 2026 03:33
@haishmg

haishmg commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

Rebased onto current upstream main and resolved the Talk config conflicts. The resolution keeps the upstream Google Live gateway-relay regression test, preserves source SecretRef redaction, and avoids resolving stale source provider configs when runtime/source providers diverge.

Local checks:

  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- test src/gateway/server-methods/talk.test.ts src/gateway/server.talk-config.test.ts
  • npm exec pnpm@10.33.0 -- exec oxfmt --check CHANGELOG.md src/gateway/server-methods/talk.ts src/gateway/server-methods/talk.test.ts

@codex review

@haishmg haishmg force-pushed the codex/talk-config-secretref-72496 branch from 006dfb2 to b24cd54 Compare April 28, 2026 03:40
@haishmg

haishmg commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

Rebased again onto current upstream main (0ff60d162c) and pushed the refreshed branch. The prior check-test-types failure was also reproducing on upstream main, and the newer base includes the fixture typing fix; I also verified the previously failing CLI shard locally.

Local checks:

  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- test src/gateway/server-methods/talk.test.ts src/gateway/server.talk-config.test.ts src/cli/run-main.exit.test.ts
  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- run check:test-types
  • npm exec pnpm@10.33.0 -- exec oxfmt --check CHANGELOG.md src/gateway/server-methods/talk.ts src/gateway/server-methods/talk.test.ts

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@haishmg haishmg force-pushed the codex/talk-config-secretref-72496 branch from b24cd54 to 56d5ea8 Compare April 28, 2026 06:43
@haishmg

haishmg commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

Rebased #72792 onto current upstream main and resolved the Talk config conflicts.

Conflict resolution kept both sides of the recent changes:

  • preserved the runtime-resolved SecretRef path for provider resolvers
  • preserved the newer source/runtime provider-divergence behavior so unresolved source SecretRefs are not fed into strict provider helpers
  • kept base TTS SecretRef wrappers stripped when runtime TTS config is unavailable

Local verification:

  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- test src/gateway/server-methods/talk.test.ts
  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- run check:changed

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

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

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@haishmg

haishmg commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

Pushed a QA-only follow-up for the parity failure. The thread-memory-isolation scenario now uses the same direct qa-channel target delivery path as other stable QA scenarios, while still asserting the memory-backed answer lands in the thread and does not leak to the root channel.

Local verification:

  • CI=true OPENCLAW_LOCAL_CHECK=0 OPENCLAW_BUILD_PRIVATE_QA=1 OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 OPENCLAW_QA_TRANSPORT_READY_TIMEOUT_MS=180000 npm exec pnpm@10.33.0 -- openclaw qa suite --provider-mode mock-openai --scenario thread-memory-isolation --concurrency 1 --model '' --alt-model openai/gpt-5.4-alt --output-dir .artifacts/qa-e2e/local-thread-memory-patched-72792
  • CI=true OPENCLAW_LOCAL_CHECK=0 OPENCLAW_BUILD_PRIVATE_QA=1 OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 QA_PARITY_CONCURRENCY=1 OPENCLAW_QA_TRANSPORT_READY_TIMEOUT_MS=180000 npm exec pnpm@10.33.0 -- openclaw qa suite --provider-mode mock-openai --parity-pack agentic --concurrency 1 --model '' --alt-model openai/gpt-5.4-alt --output-dir .artifacts/qa-e2e/local-agentic-parity-patched-72792

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Nice work!

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@haishmg haishmg force-pushed the codex/talk-config-secretref-72496 branch from 5f2a1e8 to c0def57 Compare April 28, 2026 07:24
@haishmg

haishmg commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

Pushed a11d501a6e to address the current CI failure in checks-node-core-fast-support.

What changed:

  • isolated src/video-generation/provider-registry.test.ts imports behind vi.resetModules() so this test always observes the mocked capability-provider boundary, even when scheduled with other fast-support tests that load real plugin providers

Verification:

  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- test src/video-generation/provider-registry.test.ts
  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- test src/video-generation/provider-registry.test.ts src/video-generation/video-tools.test.ts src/video-generation/provider-selection.test.ts
  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- run check:changed

@codex review

@clawsweeper

clawsweeper Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge.

Latest ClawSweeper review: 2026-05-20 23:08 UTC / May 20, 2026, 7:08 PM ET.

Workflow note: Future ClawSweeper reviews update this same comment in place.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

Summary
The PR updates talk.config to use provider-matched runtime/source config before redaction, adds Talk regression tests, adjusts the thread-memory QA scenario, and adds a changelog entry.

Reproducibility: yes. source-reproducible: current main can select the source Talk provider while feeding a different non-empty runtime provider config into that provider resolver. I did not run a live gateway repro in this read-only review, but the source path, provider contracts, docs, and PR tests make the failure mode high-confidence.

PR rating
Overall: 🦪 silver shellfish
Proof: 🦪 silver shellfish
Patch quality: 🐚 platinum hermit
Summary: The implementation looks sound and tested, but overall readiness is capped by missing real behavior proof and the small extra QA-scenario scope.

Rank-up moves:

  • Attach redacted after-fix openclaw gateway call talk.config or client discovery proof for a SecretRef-backed Talk provider.
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Real behavior proof
Needs real behavior proof before merge: Needs real behavior proof before merge: only tests, CI, and local command claims are present; attach redacted after-fix gateway/client output, logs, terminal output, recording, or artifact, then update the PR body to trigger re-review or ask a maintainer for @clawsweeper re-review.

Risk before merge

  • No redacted after-fix real gateway/client proof is attached; the available evidence is tests, CI, and local command claims.
  • The PR also changes a QA memory scenario outside the Talk config fix; it is test-surface only, but maintainers should accept that scope or split it before landing.

Maintainer options:

  1. Decide the mitigation before merge
    Land the provider-matched Talk handler and focused regression coverage after redacted real gateway/client proof is added or a maintainer explicitly overrides the proof gate.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge
Needs contributor real behavior proof or a maintainer proof override; there is no narrow automated repair because the code review found no blocking patch defect.

Security
Cleared: No concrete security or supply-chain regression found; the diff keeps talk.config responses on the existing redaction path while narrowing when resolved secrets enter provider helpers.

Review details

Best possible solution:

Land the provider-matched Talk handler and focused regression coverage after redacted real gateway/client proof is added or a maintainer explicitly overrides the proof gate.

Do we have a high-confidence way to reproduce the issue?

Yes, source-reproducible: current main can select the source Talk provider while feeding a different non-empty runtime provider config into that provider resolver. I did not run a live gateway repro in this read-only review, but the source path, provider contracts, docs, and PR tests make the failure mode high-confidence.

Is this the best way to solve the issue?

Yes for the code direction: matching resolver input to the selected provider is the narrow maintainable fix. It is not merge-ready until redacted real behavior proof is supplied or explicitly overridden.

Label changes:

  • add P2: This is a focused gateway bug fix for a documented SecretRef Talk discovery path with limited blast radius and no current code-review blocker.

Label justifications:

  • P2: This is a focused gateway bug fix for a documented SecretRef Talk discovery path with limited blast radius and no current code-review blocker.
  • rating: 🦪 silver shellfish: Current PR rating is 🦪 silver shellfish because proof is 🦪 silver shellfish, patch quality is 🐚 platinum hermit, and The implementation looks sound and tested, but overall readiness is capped by missing real behavior proof and the small extra QA-scenario scope.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: Needs real behavior proof before merge: only tests, CI, and local command claims are present; attach redacted after-fix gateway/client output, logs, terminal output, recording, or artifact, then update the PR body to trigger re-review or ask a maintainer for @clawsweeper re-review.

What I checked:

Likely related people:

  • omarshahine: Authored and merged the earlier talk.config SecretRef fixes for the same handler path in the closed related issue and follow-up messages.tts gap. (role: related fix author and merger; confidence: high; commits: 8ce4f8fc84b3, 4b760be1ddea; files: src/gateway/server-methods/talk.ts, src/gateway/server.talk-config.test.ts)
  • steipete: Authored and merged the broader runtime-config snapshot fix that moved Talk/provider execution toward runtime-resolved config for SecretRef-backed Talk paths. (role: recent runtime-config contributor and merger; confidence: high; commits: 526372ea36e3, 09298059cd77, 10a5c84321d1; files: src/gateway/server-methods/talk.ts, src/plugin-sdk/runtime-config-snapshot.ts, extensions/speech-core/src/tts.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against b58572e283bc.

@haishmg haishmg force-pushed the codex/talk-config-secretref-72496 branch from a11d501 to 1982696 Compare April 28, 2026 07:48
@haishmg

haishmg commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

Rebased on upstream main and force-pushed 1982696a14.

Post-rebase verification:

  • CI=true OPENCLAW_LOCAL_CHECK=0 npm exec pnpm@10.33.0 -- test src/video-generation/provider-registry.test.ts src/auto-reply/reply/commands-status.thinking-default.test.ts

Note: I also tried including qa/scenarios/memory/thread-memory-isolation.md in pnpm test, but that path is a QA scenario markdown file rather than a Vitest file, so the test runner correctly reported no matching test files for that path. The actual QA scenario had already passed in the earlier local QA run after the scenario fix.

@codex review

Re-review progress:

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. You're on a roll.

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@haishmg haishmg force-pushed the codex/talk-config-secretref-72496 branch from 1982696 to ede0808 Compare April 28, 2026 14:35
@openclaw-barnacle openclaw-barnacle Bot added the cli CLI command changes label Apr 28, 2026
@haishmg haishmg force-pushed the codex/talk-config-secretref-72496 branch from b4e94bb to 09e7501 Compare May 10, 2026 11:33
@openclaw-barnacle openclaw-barnacle Bot added triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. and removed cli CLI command changes extensions: qa-lab labels May 10, 2026
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels May 20, 2026
@clawsweeper

clawsweeper Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat.

Where did the egg go?
  • The egg game starts only after the PR passes the real-behavior proof check.
  • Before that, no creature or rarity is rolled. The treat waits for real proof.
  • This is still just collectible flavor: proof affects review readiness, not creature quality.

@clawsweeper clawsweeper Bot added the P2 Normal backlog priority with limited blast radius. label May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gateway Gateway runtime P2 Normal backlog priority with limited blast radius. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. size: M status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

talk.config RPC fails with "unresolved SecretRef" for talk.providers.*.apiKey, breaks Talk Mode discovery

1 participant