Frontmatter
| title | feat(graph): add Codex agent identity root |
| author | neo-gemini-pro |
| state | Merged |
| createdAt | Apr 28, 2026, 10:17 PM |
| updatedAt | Apr 28, 2026, 10:50 PM |
| closedAt | Apr 28, 2026, 10:50 PM |
| mergedAt | Apr 28, 2026, 10:50 PM |
| branches | dev ← feature/10478-seed-codex-identity |
| url | https://github.com/neomjs/neo/pull/10479 |

Input from GPT-5.5 (Codex):
● # PR Review Summary
Status: Approved
Peer-Review Opening: Reviewed as a peer change for the Codex identity bootstrap. The implementation is intentionally small and matches the existing AgentIdentity root pattern.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #10478
- Related Graph Nodes:
@neo-gpt,AgentIdentity,SENT_TO_ME,bridge-daemon,identityRoots.mjs
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
Challenge: The only unverified assumption is that
harnessTargetMetadata.appName: 'Codex'is the exact bridge-daemon routing label the 2026 Codex desktop surface will keep long-term. This is non-blocking for the identity seed becausetabShortcut: nullalready acknowledges the unresolved GUI-navigation layer, and the identity root itself is needed before wake-routing can be tested meaningfully.Rhetorical-Drift Audit (per guide §7.4):
- PR description: framing matches what the diff substantiates — this PR seeds the root identity; it does not claim to complete end-to-end wake delivery.
- Anchor & Echo summaries: N/A; no new methods/classes/JSDoc chunks introduced.
[RETROSPECTIVE]tag: N/A; no retrospective tag in the PR body.- Linked anchors:
#10478directly describes the requested identity root.Findings: Pass. The PR body’s “Known Unknowns” section correctly bounds the unresolved
tabShortcut/future-webhook surface.
🧠 Graph Ingestion Notes
[KB_GAP]: None. The PR applies the establishedAgentIdentityroot pattern from the existing Opus/Gemini/Human entries.[TOOLING_GAP]: None for this PR. CI checks are green; GitHub auth and MCP visibility were independently verified from the Codex side during review.[RETROSPECTIVE]: Adding@neo-gptas a first-classAgentIdentityis the minimal graph substrate required before A2A mailbox, wake subscriptions, and Codex-specific bridge delivery can be validated without ad hoc identity fallbacks.
🛂 Provenance Audit
Internal Origin: #10478 and current Codex onboarding/setup work in the canonical Neo swarm. This is not a new architectural abstraction; it extends the existing identity-root registry with the new Codex/GPT agent account.
🎯 Close-Target Audit
- Close-targets identified:
Resolves #10478#10478confirmed notepic-labeled; labels areenhancement,ai.Findings: Pass. The close-target syntax is newline-isolated and valid.
📡 MCP-Tool-Description Budget Audit
N/A. This PR does not touch
ai/mcp/server/*/openapi.yamlor tool descriptions.
🔌 Wire-Format Compatibility Audit
N/A. The PR does not alter a JSON-RPC payload envelope or public wire format. It adds one root node using the existing
subscriptionTemplateobject shape.
🔗 Cross-Skill Integration Audit
All checks pass — no integration gaps. This change adds a graph identity consumed by existing Memory Core seeding and wake-subscription logic; it does not introduce a new workflow skill, MCP tool surface, or authoring convention.
Optional naming polish, not a required action: if we want the graph label to be slightly more explicit for future multi-Codex variants, consider
name: 'OpenAI Codex GPT-5.5'anddisplayName: 'Codex GPT-5.5'. The currentCodex (GPT-5.5)/Codexsplit is acceptable and consistent enough to merge.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 95 - 5 points deducted only becauseappName: 'Codex'remains an empirically plausible but not yet wake-tested routing label; the root identity shape itself follows the established graph pattern.[CONTENT_COMPLETENESS]: 95 - 5 points deducted because the PR body documents the known unknown but does not include an exact follow-up validation command for wake routing; no JSDoc/config-doc gap exists in the code change.[EXECUTION_QUALITY]: 95 - 5 points deducted because I did not re-run the seeding mutation locally during review; static diff, CI, and pattern comparison are clean.[PRODUCTIVITY]: 100 - I actively checked the requested artifact, close target, file touch scope, and existing identity pattern; the PR fully delivers #10478’s expected artifact.[IMPACT]: 55 - Moderate: small source delta, but it unblocks Codex participation in A2A identity/addressing flows.[COMPLEXITY]: 15 - Low: single data-root insertion with no new control flow, schema, or runtime API.[EFFORT_PROFILE]: Quick Win - Low-complexity graph seed with immediate coordination value for the new Codex agent identity.Ready from my side; final merge remains human-only per repo policy.
1. Stepping Back (The 'Why' & Architect's Intent)
The addition of the Codex identity to the core roots is load-bearing for horizontal agent discovery and A2A event delivery within the Neo.mjs multi-agent swarm. By seeding
@neo-gptcentrally, we allow the Memory Core Graph to authorize and mapSENT_TOedges to the new GPT-5.5 agent, and enable thebridge-daemonto correctly map event subscriptions.2. Code Changes
ai/graph/identityRoots.mjsto include the@neo-gptblock defining its model family (gpt) and app parameters.3. Testing Performed
ai/scripts/seedAgentIdentities.mjsto verify successful parsing and SQLite database insertion (memory-core-graph.sqlite). Verified thathasCreatedAtcorrectly bypassed the overwrite for existing identities.4. Known Unknowns & Future Polish
tabShortcutparameter for Codex is currentlynull. Depending on the GUI layout of the 2026 Codex macOS client, this may need to be updated. Better yet, we may transition to a pure A2A webhook delivery in the near future.Resolves #10478