antigravity-native-e2e…
Spin up a live local Omnigent server + runner and exercise the native Antigravity (agy) TUI harness (antigravity-native)…
Emit the complete Resolve handoff with exact modes, outcomes, test evidence, and publication state.
Claude Code
$ npx -y skills add omnigent-ai/omnigent --skill resolve-handoff --agent claude-code
Codex
$ npx skills add omnigent-ai/omnigent --skill resolve-handoff -a codex -y
Cursor
$ npx skills add omnigent-ai/omnigent --skill resolve-handoff -a cursor -y
Gemini CLI
$ npx skills add omnigent-ai/omnigent --skill resolve-handoff -a gemini-cli -y
GitHub Copilot
$ npx skills add omnigent-ai/omnigent --skill resolve-handoff -a github-copilot -y
OpenCode
$ npx skills add omnigent-ai/omnigent --skill resolve-handoff -a opencode -y
Windsurf
$ npx skills add omnigent-ai/omnigent --skill resolve-handoff -a windsurf -y
name: resolve-handoff description: Emit the complete Resolve handoff with exact modes, outcomes, test evidence, and publication state.
The **last thing in your final message** must be exactly one fenced ```json code block — the machine-readable handoff, parsed by taking the last ```json fence in the message. Same discipline as repro-agent:
**last chunk** of the message, with nothing after its closing fence. Do not split the handoff across multiple sections or emit a second data block.
opening the PR (Step 3.5) so the workflow can post the PR link to Linear before Step 4 finishes. That is fine — the caller reads the **last** valid handoff in the session, so this final one supersedes the interim block. The interim block carries `pr_url` + a provisional `outcome`; this final block is authoritative.
a value is empty (`""`, `[]`).
`"review_remediation"` — which entry path you took.
`"partially_fixed"`, `"not_fixed"`, `"nothing_to_fix"`, `"needs_more_info"` — lowercase, no other wording. This is the field the caller reads, so it must match verbatim.
{
"bug_url": "https://github.com/omnigent-ai/omnigent/issues/1234",
"mode": "authored_fix",
"outcome": "fixed",
"problem_summary": "People see internal catalog IDs in the model picker instead of readable model names.",
"solution_summary": "The model picker now shows a friendly name for every model.",
"root_cause": "picker rendered raw catalog IDs because format_label() was never called on the option list",
"fix_summary": "call format_label() when building picker options in web/src/model/picker.tsx",
"review_body": "",
"files_changed": ["web/src/model/picker.tsx"],
"facets": [
{"symptom": "picker display", "outcome": "fixed", "test_transition": "test_1234 failed: raw IDs shown → passes: friendly labels"},
{"symptom": "catalog default", "outcome": "nothing_to_fix", "test_transition": "already_fixed in #3448; skipped"}
],
"tests": {
"e2e": "",
"added": ["tests/web/model/test_picker_label.py::test_display_label"]
},
"recordings": [
{"surface": "web", "kind": "before", "path": "recordings/1234/before-picker.webm", "format": "webm",
"capture_mode": "playwright_ui",
"caption": "open the model picker → select the catalog → picker shows raw IDs"},
{"surface": "web", "kind": "after", "path": "recordings/1234/after-picker.mp4", "format": "mp4",
"capture_mode": "playwright_ui",
"caption": "open the model picker → select the catalog → picker now shows friendly names"}
],
"recording_unavailable_reason": "",
"test_audit": "Reused the display-label regression; the same assertions fail on base and pass on head. Browser reproduction evidence is staged in .omnigent/repro-evidence/; workflow upload is pending at <workflow run URL>, artifact resolve-bundle-<run-id>, path repro-evidence/. No additional browser boundary was found.",
"impact_assessment": {
"base_sha": "<full target-branch tip SHA>",
"head_sha": "<full candidate HEAD SHA>",
"worktree_state": "clean",
"risks": [
{
"files": ["web/src/model/picker.tsx"],
"behavior": "Changing labels can alter model selection or restoration",
"consumers": ["model picker", "restored sessions"],
"invariant": "Selections and restored sessions retain the same model IDs",
"check": "<exact command exercising selection and session restoration>",
"result": "passed",
"evidence": "<retained output reference, tested build and environment>"
}
],
"uncovered_boundaries": [],
"not_applicable_reason": ""
},
"remaining_work": [],
"hermetic_check": "test_picker_label re-run with ambient env vars set — still passes",
"pr_url": "https://github.com/omnigent-ai/omnigent/pull/4200",
"reviewed_pr_url": "",
"pushed_branch": "",
"ci_status": "green (all required checks pass)",
"polly_review": "clean on <full candidate HEAD SHA>: fixed null-deref; fresh review has no findings",
"ocr_review": "clean on <full candidate HEAD SHA>: no findings",
"review_cycle": {
"head_sha": "<full candidate HEAD SHA>",
"fingerprint": "<fingerprint from the final review snapshot>",
"dispositions": [
{"key": "comment:<id>", "status": "addressed", "reason": "Finding 1: null-deref fixed in <commit>; <test> passes. Finding 2: suggested fallback already exists at <path:line> and is covered by <test>, so not needed."}
]
},
"ui_preview": "labeled ui-preview on every PR; preview at https://…; posted connect instructions",
"validation_surface": "server",
"validation_prompt": "Reproduce and validate a bug fix. Steps: open the model picker in the catalog view… Before this fix, raw catalog IDs were shown. Confirm the fix by checking that friendly labels appear. Report whether each step now behaves correctly.",
"maintainer_review": "requested review from @PattaraS (issue assignee)",
"review_fingerprint": "",
"handled_review_ids": [],
"last_pushed_sha": "",
"session_id": "dc59e331-..."
}Field meanings:
For modes that drive an open PR, `fixed` also requires the Step 4.3 live gate to pass. Interim and workflow-owned implementation handoffs do not certify PR readiness; name pending publication/review steps in `remaining_work`.
it and kept it as the fix) or `authored_fix` (Step 2B: you wrote the fix). Use `authored_fix` when you started from an
Omnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents — swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.
Spin up a live local Omnigent server + runner and exercise the native Antigravity (agy) TUI harness (antigravity-native)…
Spin up a live local Omnigent server and exercise the Antigravity (Gemini) SDK harness end-to-end — build antigravity agents, run…
Verify the Omnigent CLI's setup/onboarding flow, terminal UI/UX, and critical user journeys in a completely isolated,…
Spin up a live local Omnigent server and exercise the GitHub Copilot SDK harness end-to-end — build copilot agents, run real…
Spin up a live local Omnigent server and exercise the Cursor SDK harness end-to-end — build cursor agents, run real turns,…
Draft or refresh Omnigent package release notes for the next version using the existing GitHub Actions preview, merged PR…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration