Skip to content

feat(contracts): add deterministic browser task signatures#1114

Merged
shaun0927 merged 3 commits into
developfrom
feat/1049-task-signature
May 13, 2026
Merged

feat(contracts): add deterministic browser task signatures#1114
shaun0927 merged 3 commits into
developfrom
feat/1049-task-signature

Conversation

@shaun0927
Copy link
Copy Markdown
Owner

@shaun0927 shaun0927 commented May 12, 2026

Progress / Review status

Auto-refreshed 2026-05-13 — owner comments cleaned up to reduce review noise.

Field Value
Branch feat/1049-task-signaturedevelop
Draft no
CI ⏳ 0/9 passing — 9 pending
Mergeable ✅ MERGEABLE
Review decision
Codex (latest)
Other reviewers (latest)
Head 3d246d4 — Merge branch 'develop' into feat/1049-task-signature
Commits 2

Owner comment cleanup: 0 issue + 0 inline review comments deleted. Outstanding feedback from automated/external reviewers above is unchanged.


Summary

  • Add BrowserTaskSignature types, batched validator, deterministic evaluator, allowed-tool preflight, and secret input redaction helper.
  • Add optional execute_plan.taskSignature handling that preserves no-signature response shape while rejecting disallowed tools before execution and surfacing loop/budget status for signed plans.
  • Document task signatures as explicit deterministic boundaries, not prompts or LLM optimizers.

Direction / scope fit

  • Builds on existing src/contracts/** assertion validation instead of replacing it.
  • Adds no DSPy, Python, outbound LLM call, or natural-language signature inference.
  • Keeps production behavior backward-compatible when taskSignature is omitted.

Closes #1049

Verification

  • npm run build
  • npx jest tests/contracts/task-signature.test.ts tests/orchestration/plan-cache.test.ts --runInBand
  • npm run lint:tier

Validation gap

  • Browser-level HTTP MCP fixture validation for signature-aware execute_plan is not included in this slice; the PR adds the deterministic contract and optional plan boundary needed for that follow-up fixture.

Add a BrowserTaskSignature schema, validator, evaluator, and optional execute_plan boundary so task success, stop, loop, and tool-allow rules are machine-readable without adding LLM or DSPy runtime behavior.

Constraint: Issue #1049 requires deterministic task boundaries, no server-side LLM judgment, and backward compatibility for no-signature execution.
Rejected: Inferring task signatures from natural language | would add prompt-dependent behavior and violate the deterministic contract.
Confidence: medium
Scope-risk: moderate
Directive: Keep signatures as explicit typed contracts; do not auto-generate or mutate them in production runtime.
Tested: npm run build; npx jest tests/contracts/task-signature.test.ts tests/orchestration/plan-cache.test.ts --runInBand; npm run lint:tier.
Not-tested: Full npm test suite; browser-level execute_plan fixture over HTTP MCP.
Co-authored-by: OmX <omx@oh-my-codex.dev>
Repository owner deleted a comment from gemini-code-assist Bot May 13, 2026
Repository owner deleted a comment from qodo-code-review Bot May 13, 2026
Repository owner deleted a comment from chatgpt-codex-connector Bot May 13, 2026
@shaun0927 shaun0927 merged commit 0cd9a49 into develop May 13, 2026
17 of 18 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.

1 participant