Skip to content

fix: handle compacted tool specs and paused cron badges - #3238

Merged
nonoqing merged 1 commit into
mainfrom
codex/fix-deferred-spec-and-cron-badge
Sep 28, 2026
Merged

nonoqing merged 1 commit into
mainfrom
codex/fix-deferred-spec-and-cron-badge

Conversation

@nonoqing

Copy link
Copy Markdown
Collaborator

Summary

  • Clarify that deferred tools must be loaded again when compaction removes their full GetToolSpec result. Align the tool guide, gateway instructions, duplicate-load hint, and missing-spec error so a summary saying a tool was loaded cannot conflict with the runtime gate.
  • Count only enabled scheduled jobs in session navigation badges. Pausing the last enabled job associated with a session clears its clock; changes arriving during an in-flight refresh now trigger another read.

Type and Areas

Type: Bug fix

Areas: Agent Runtime prompt and tool contracts, Core tool runtime tests, Web UI scheduled-job state.

Motivation / Impact

After context compaction, an agent could hesitate between reloading a tool definition and following the instruction against duplicate loads, then attempt a call rejected by the runtime. The instructions now describe the same context-scoped lifecycle as the execution gate.

Paused jobs remain manageable in the task board while the clock reflects enabled schedules associated with each individual session. Regression coverage exercises pause, resume, deletion, queued refreshes, and failed reads.

Verification

Passed locally:

  • cargo test --locked -p openbitfun-agent-tools --no-default-features --lib get_tool_spec
  • cargo test --locked -p openbitfun-agent-tools --no-default-features --test tool_contracts get_tool_spec
  • cargo test --locked -p openbitfun-agent-tools --no-default-features --test tool_contracts deferred_tool
  • cargo test --locked -p openbitfun-agent-runtime --no-default-features --features agent-runtime --test agent_definition_contracts prompt_contracts
  • cargo test --locked -p openbitfun-core --no-default-features --features agent-runtime,git --lib agentic::tools::product_runtime::
  • pnpm --dir src/web-ui run test:run src/app/components/scheduled-jobs/cronJobCountsStore.test.ts src/infrastructure/api/service-api/CronAPI.test.ts src/app/scenes/todos/todoOccurrences.test.ts — 44 tests passed.
  • pnpm run check:web
  • pnpm run fmt:rs and git diff --check

The compression regression runs the actual compressor with both a discarded and a retained tool-result tail, and checks admission before and after reloading. Existing GetToolSpec fixture assertions referring to the old agentic name failed on the base commit and were aligned with their Standard input.

Reviewer Notes

AI-assisted change; testing level: focused automated validation. No live model-conversation or desktop GUI replay was performed. Remote workspace prompt and workspace-identity contracts were exercised locally; live Remote Workspace, Remote Control, Peer Device Mode, and Detached Dispatch were not exercised.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@nonoqing
nonoqing merged commit 1f58a79 into main Sep 28, 2026
11 of 12 checks passed
@nonoqing
nonoqing deleted the codex/fix-deferred-spec-and-cron-badge branch September 28, 2026 03:12
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.

1 participant