Skip to content

fix(agent): use static catalog for embedded model fast path#85696

Closed
wyf027 wants to merge 1 commit into
openclaw:mainfrom
wyf027:leno23/fix-moonshot-static-model-fastpath
Closed

fix(agent): use static catalog for embedded model fast path#85696
wyf027 wants to merge 1 commit into
openclaw:mainfrom
wyf027:leno23/fix-moonshot-static-model-fastpath

Conversation

@wyf027

@wyf027 wyf027 commented May 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Closes [Bug]: Native Moonshot Discord runs spend ~30s in model-resolution before dispatch #84783.
  • Lets the embedded agent runner use bundled static catalog rows during its skip-agent-discovery model-resolution fast path.
  • Resolves static catalog rows before provider dynamic hooks on that fast path, avoiding Moonshot runtime/provider discovery before dispatch while preserving the existing dynamic fallback when no static row exists or provider runtime metadata is explicitly preferred.
  • Refreshes the branch onto current upstream/main after the embedded-agent runner and static-catalog fallback changes.

Test Plan

  • node scripts/run-vitest.mjs src/agents/embedded-agent-runner.e2e.test.ts src/agents/embedded-agent-runner/model.test.ts
    • Result: passed 2 Vitest shards; model.test.ts 117 passed; embedded-agent-runner.e2e.test.ts 14 passed.
  • node scripts/run-vitest.mjs src/agents/bash-tools.exec-foreground-failures.test.ts
    • Result: passed 1 Vitest shard; 2 passed.
  • pnpm tsgo:prod
    • Result: passed tsgo:core and tsgo:extensions.
  • pnpm check:test-types
    • Result: passed tsgo:core:test and tsgo:extensions:test.
  • node scripts/check-extension-package-tsc-boundary.mjs --mode=compile
    • Result: extension package boundary check passed; 114 compiled plugins.
  • git diff --check upstream/main...HEAD
    • Result: no whitespace errors.

Real behavior proof

Behavior addressed: Native Moonshot embedded agent runs can resolve moonshot/kimi-k2.6 from the bundled static manifest catalog before generating OpenClaw models.json or loading provider dynamic hooks, removing the reported model-resolution stall before dispatch.

Real environment tested: Local macOS OpenClaw worktree refreshed onto current upstream/main, using the real src/agents/embedded-agent-runner/model.ts runtime entrypoint with isolated temporary OpenClaw home/config directories, an isolated temporary agent directory, and the bundled Moonshot manifest catalog.

Exact steps or command run after this patch: OPENCLAW_HOME=<temp> OPENCLAW_CONFIG_DIR=<temp>/.openclaw OPENCLAW_CONFIG_PATH=<temp>/.openclaw/openclaw.json time -l node --import tsx -e "import fs from 'node:fs/promises'; import path from 'node:path'; import { resolveModelAsync } from './src/agents/embedded-agent-runner/model.ts'; const root = process.env.OPENCLAW_HOME; if (!root) throw new Error('missing OPENCLAW_HOME'); const agentDir = path.join(root, 'agent'); await fs.mkdir(agentDir, { recursive: true }); const started = Date.now(); const result = await resolveModelAsync('moonshot', 'kimi-k2.6', agentDir, { agents: { defaults: { workspace: root } } }, { allowBundledStaticCatalogFallback: true, skipAgentDiscovery: true, workspaceDir: root }); let modelsJsonExists = true; try { await fs.access(path.join(agentDir, 'models.json')); } catch { modelsJsonExists = false; } console.log(JSON.stringify({ resolved: Boolean(result.model), provider: result.model?.provider, id: result.model?.id, api: result.model?.api, baseUrl: result.model?.baseUrl, modelsJsonExists, elapsedMs: Date.now() - started }, null, 2));".

Evidence after fix: Copied terminal output from the refreshed runtime command:

{
  "resolved": true,
  "provider": "moonshot",
  "id": "kimi-k2.6",
  "api": "openai-completions",
  "baseUrl": "https://api.moonshot.ai/v1",
  "modelsJsonExists": false,
  "elapsedMs": 62116
}

The same run also reported 65.17 real seconds and 825475072 maximum resident set size from time -l.

Observed result after fix: The command exited 0, resolved the Moonshot model from static catalog metadata, did not create models.json, and used the skipAgentDiscovery fast path on current upstream/main.

What was not tested: No live Moonshot API call or Discord/TUI end-to-end dispatch was run; the proof isolates the model-resolution path that the issue trace identified, with targeted embedded-runner tests and type/package-boundary checks.

Risk/Notes

  • This PR intentionally changes only the model-resolution fast path for explicit model refs with allowBundledStaticCatalogFallback and skipAgentDiscovery; live provider dispatch still depends on operator credentials.
  • Provider runtime metadata still wins when the runtime preference hook asks for it, so live/static catalog metadata does not replace explicitly preferred provider-resolved metadata.

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: S proof: supplied External PR includes structured after-fix real behavior proof. labels May 23, 2026
@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed June 15, 2026, 6:14 AM ET / 10:14 UTC.

Summary
The branch makes embedded-agent skip-discovery model resolution try bundled static catalog rows for native runs before dynamic provider hooks and updates focused resolver tests.

PR surface: Source +2, Tests +46. Total +48 across 4 files.

Reproducibility: no. high-confidence live reproduction was run in this read-only review. The linked issue has concrete shipped-release timing logs, and current source shows native Moonshot can miss the lean pass and fall into broad model discovery.

Review metrics: 1 noteworthy metric.

  • Static fallback scope: 1 runner gate broadened, 1 resolver precedence changed. The diff changes when provider dynamic hooks can be bypassed, so maintainers need compatibility and upgrade proof before merge.

Merge readiness
Overall: 🦪 silver shellfish
Proof: 🦪 silver shellfish
Patch quality: 🦪 silver shellfish
Result: blocked until stronger real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P1] Add redacted before/after Moonshot Discord or TUI dispatch timing proof from the changed branch.
  • Narrow static-first behavior or get explicit maintainer acceptance for the provider-wide precedence change with focused coverage.

Proof guidance:

  • [P1] Needs stronger real behavior proof before merge: The PR body includes terminal resolver output, but it does not show after-fix embedded-agent dispatch improvement and reports about 62 seconds for the resolver-only command; add redacted Discord/TUI or runtime-log proof and redact private details. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Risk before merge

  • [P1] Merging this as-is changes native embedded runs from dynamic-first to static-first for any skip-discovery provider with a matching static row unless that provider implements a runtime-preferred metadata hook.
  • [P1] Provider dynamic hooks can own auth, transport, capability loading, and forward-compat metadata, so a static row winning early can route existing setups differently even when CI and targeted Moonshot tests pass.
  • [P1] The PR body's real proof shows resolver output without models.json, but it does not show an improved Discord/TUI embedded-agent dispatch and the captured resolver command still reports about 62 seconds elapsed.

Maintainer options:

  1. Narrow Static-First Resolution (recommended)
    Restrict static-first behavior to Moonshot or an explicit provider capability, and keep dynamic hooks first for providers that own auth, transport, or capability metadata.
  2. Accept Provider-Wide Static Precedence
    Maintainers can deliberately accept static catalog rows winning for opted-in native skip-discovery runs, but the PR should document that compatibility choice and add focused provider coverage.
  3. Pause Until Dispatch Proof Exists
    If the branch cannot show real Moonshot embedded-agent dispatch timing improvement, keep the linked issue open and replace this with a narrower repair.

Next step before merge

  • [P1] The remaining blocker is maintainer compatibility judgment plus contributor dispatch proof, not a safely automatable narrow repair on the PR branch.

Security
Cleared: The diff does not add dependencies, workflows, permissions, downloads, or new secret-handling paths; the provider/auth concern is a functional merge risk, not a new supply-chain issue.

Review findings

  • [P1] Keep dynamic hooks ahead of broad static fallback — src/agents/embedded-agent-runner/model.ts:1659
Review details

Best possible solution:

Land a narrowed fix that gives native Moonshot a lean static-catalog resolution path while keeping auth/config-aware dynamic hooks first unless a provider explicitly opts into static-first metadata, with redacted before/after dispatch timing proof.

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

No high-confidence live reproduction was run in this read-only review. The linked issue has concrete shipped-release timing logs, and current source shows native Moonshot can miss the lean pass and fall into broad model discovery.

Is this the best way to solve the issue?

No as merge-ready: using bundled static catalog metadata is a plausible Moonshot fix, but this branch makes a broader provider precedence change and lacks real dispatch timing proof. A narrower provider-owned or capability-gated path is safer.

Full review comments:

  • [P1] Keep dynamic hooks ahead of broad static fallback — src/agents/embedded-agent-runner/model.ts:1659
    This branch enables static catalog fallback for all native embedded runs and then resolves static rows before resolveDynamicAttempt() whenever the provider has not opted into runtime-preferred metadata. Providers such as OpenRouter expose dynamic hooks for runtime capability/model metadata, so a matching static row can now bypass provider-owned hook work. Keep dynamic-first as the default, or narrow static-first resolution to Moonshot/an explicit provider capability.
    Confidence: 0.82

Overall correctness: patch is incorrect
Overall confidence: 0.86

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 0314819f918a.

Label changes

Label justifications:

  • P1: The linked bug affects real embedded-agent Discord/TUI dispatch latency before model execution starts.
  • merge-risk: 🚨 compatibility: The PR broadens static catalog fallback from plugin-harness transport to all native embedded runs and changes resolution precedence.
  • merge-risk: 🚨 auth-provider: Static catalog metadata can now win before provider dynamic hooks that may select auth-aware transport, model metadata, or credentials behavior.
  • rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦪 silver shellfish and patch quality is 🦪 silver shellfish.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The PR body includes terminal resolver output, but it does not show after-fix embedded-agent dispatch improvement and reports about 62 seconds for the resolver-only command; add redacted Discord/TUI or runtime-log proof and redact private details. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed

PR surface:

Source +2, Tests +46. Total +48 across 4 files.

View PR surface stats
Area Files Added Removed Net
Source 2 7 5 +2
Tests 2 54 8 +46
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 4 61 13 +48

What I checked:

Likely related people:

  • Kevin Lin: Current blame for the embedded-runner resolver, static fallback helper, dynamic attempt, and runner model-resolution call points to the June 14 file-layout/refactor commit. (role: recent area refactor contributor; confidence: medium; commits: e82d19fb06b5; files: src/agents/embedded-agent-runner/model.ts, src/agents/embedded-agent-runner/run.ts, extensions/openai/openai-provider.ts)
  • ruclaw7: History shows the runtime-preferred OpenAI metadata behavior was introduced in the commit named for preferring Codex GPT-5.4 runtime metadata, which is directly relevant to static-vs-dynamic precedence. (role: runtime metadata guard contributor; confidence: medium; commits: 81969c7a91db; files: src/agents/embedded-agent-runner/model.ts, extensions/openai/openai-provider.ts)
  • VACInc: Recent history around OpenAI/Codex Spark OAuth routing touches the same auth-sensitive model/runtime boundary this PR could affect. (role: adjacent OpenAI auth-routing contributor; confidence: medium; commits: 59e6452772a7; files: extensions/openai/openai-chatgpt-provider.ts)
  • Ayaan Zaidi: Recent OpenAI runtime routing work appears in the same history search for runtime-preferred and ChatGPT response transport behavior. (role: adjacent OpenAI runtime contributor; confidence: medium; commits: 501f63443f54; files: extensions/openai/openai-chatgpt-provider.ts)
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.

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.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e0b6fb0a9c

ℹ️ 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/agents/pi-embedded-runner/model.ts Outdated
Comment on lines +1218 to +1220
const staticCatalogRuntimeHooks = options?.skipPiDiscovery
? STATIC_PROVIDER_RUNTIME_HOOKS
: runtimeHooks;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Badge Preserve provider model normalization on static fast path

When skipPiDiscovery is enabled, this path forces STATIC_PROVIDER_RUNTIME_HOOKS for static-catalog resolutions, so normalizeResolvedModel(...) no longer runs provider normalizeResolvedModel hooks for those models. That regresses providers that rely on normalization to attach runtime compat metadata (for example Mistral’s hook in extensions/mistral/index.ts applies applyMistralModelCompat, which sets compat.supportsReasoningEffort/reasoningEffortMap for mistral-medium-3-5 and mistral-small-latest); without that metadata, downstream OpenAI-compat detection falls back to supportsReasoningEffort: false, so embedded-runner fast-path requests can silently drop reasoning effort behavior for static-resolved models.

Useful? React with 👍 / 👎.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels May 23, 2026
@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

✨ Hatched: 🥚 common Gilded Crabkin

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.

Rarity: 🥚 common.
Trait: sleeps inside passing CI.
Image traits: location green-check meadow; accessory proof snapshot camera; palette coral, mint, and warm cream; mood determined; pose leaning over a miniature review desk; shell brushed metal shell; lighting warm desk-lamp glow; background tiny artifact crates.
Share on X: post this hatch
Copy: My PR egg hatched a 🥚 common Gilded Crabkin in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels May 23, 2026
@wyf027
wyf027 force-pushed the leno23/fix-moonshot-static-model-fastpath branch from e0b6fb0 to 1c07f47 Compare May 23, 2026 12:02
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 23, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels May 23, 2026
@wyf027
wyf027 force-pushed the leno23/fix-moonshot-static-model-fastpath branch from 1c07f47 to 407c0f5 Compare May 23, 2026 13:20
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 23, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 23, 2026
@wyf027
wyf027 force-pushed the leno23/fix-moonshot-static-model-fastpath branch from 407c0f5 to 312a123 Compare May 23, 2026 14:43
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 26, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels May 26, 2026
@wyf027
wyf027 marked this pull request as draft May 26, 2026 15:48
@wyf027
wyf027 force-pushed the leno23/fix-moonshot-static-model-fastpath branch from ec5cd86 to a3ccbdd Compare May 26, 2026 16:06
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 26, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels May 26, 2026
@openclaw-barnacle openclaw-barnacle Bot added size: S and removed extensions: diagnostics-otel Extension: diagnostics-otel cli CLI command changes scripts Repository scripts commands Command implementations extensions: codex extensions: deepinfra size: L labels May 30, 2026
@wyf027
wyf027 marked this pull request as ready for review May 30, 2026 09:22
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@wyf027
wyf027 force-pushed the leno23/fix-moonshot-static-model-fastpath branch from 8436fc3 to 29c9ce4 Compare May 31, 2026 08:14
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 31, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 31, 2026
@wyf027
wyf027 marked this pull request as draft June 2, 2026 13:25
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 2, 2026
@wyf027
wyf027 marked this pull request as ready for review June 5, 2026 09:49

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 29c9ce435a

ℹ️ 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 on lines +1495 to +1496
: options?.skipAgentDiscovery
? (resolveStaticCatalogAttempt() ?? (await resolveDynamicAttempt()))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Badge Keep OAuth-aware OpenAI resolution before static rows

When skipAgentDiscovery is combined with allowBundledStaticCatalogFallback (the embedded runner now passes both), this resolves any bundled static OpenAI row before resolveDynamicAttempt() can call the provider's resolveDynamicModel with the selected auth profile. OpenAI's dynamic hook uses that auth mode to route OAuth/token profiles for models like gpt-5.4/gpt-5.5 to the Codex transport (openai-chatgpt-responses), while the static catalog row normalizes as the API-key openai-responses transport; for users running the embedded runner with an OpenAI/Codex OAuth profile, this skips the Codex auth bootstrap and attempts the wrong transport. Keep the dynamic attempt ahead of static rows for auth-sensitive providers, or pass equivalent auth-routing context into the static path.

Useful? React with 👍 / 👎.

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Jun 5, 2026
@wyf027
wyf027 marked this pull request as draft June 12, 2026 13:18
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 12, 2026
@wyf027

wyf027 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

Closing this stale draft PR because it has been open for a long time without merge. I can reopen or resubmit if needed.

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

Labels

agents Agent runtime and tooling merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. P1 High-priority user-facing bug, regression, or broken workflow. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. size: S status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Native Moonshot Discord runs spend ~30s in model-resolution before dispatch

2 participants