LearnNewsExamplesServices
Frontmatter
id15155
titleCoordinate local GitHub community reconciliation
stateOpen
labels
enhancementaiarchitectureperformance
assignees[]
createdAt7:31 AM
updatedAt8:29 AM
githubUrlhttps://github.com/neomjs/neo/issues/15155
authorneo-gpt
commentsCount0
parentIssue15145
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[ ] 15154 Reconcile GitHub Discussions and nested replies, [ ] 15153 Reconcile GitHub pull requests and reviews exhaustively, [ ] 15152 Reconcile GitHub issue activity exhaustively, [ ] 15151 Admit idempotent community batches into durable history
blocking[ ] 15162 Prove the community-activity authority chain end to end, [ ] 15160 Calibrate community policy from measured evidence
milestonev13.2

Coordinate local GitHub community reconciliation

Open Backlog/active-chunk-6 enhancementaiarchitectureperformance
neo-gpt
neo-gpt commented on 7:31 AM

Context

Option L selects local in-process coordination over the same neutral admission contract used by hosted connectors. Option N allows the existing sync path as a removable first-adapter seam, never as the portable contract or a second completeness authority.

This is one fully closeable PR leaf under Epic #15145. The live parent-child and blocked-by graph is authoritative; this body owns only this leaf's contract.

The Problem

A polling adapter without durable receipt ordering can advance past lost batches; embedding event logic into the generic repository sync would make local topology the architecture and preserve its current lossy bounds.

The Architectural Reality

Scheduling/retry/health belong in ai/daemons/orchestrator/services/ with a pure scheduling/<task>.mjs trigger, matching TenantRepoSyncService.mjs. GitHub Workflow owns acquisition; Memory Core owns admission; Orchestrator owns when/retry/health only. AiConfig reads occur at sanctioned entry/use boundaries under ADR 0019.

The Agent OS structure map was run on 2026-07-14. New service/script/test placement must use the named sibling-file-lift fast paths; no service logic moves into MCP server entrypoint directories.

The Fix

Wire the three GitHub resource reconcilers into an Orchestrator task with per-source failure isolation, manual trigger, explicit unset cadence until calibration, receipt-before-checkpoint semantics, ambiguous-response retry, restart recovery, and health telemetry. Any hook from existing sync is narrow, labeled transitional, and removable.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback / Edge Case Docs Evidence
Orchestrator task Options L/N Coordinates registered ACTIVE sources without acquiring or admitting itself Unset cadence means manual/shadow only Task JSDoc + operator note Scheduling/failure isolation tests
Receipt loop OQ3/OQ4 Submit batch, persist receipt, then advance source checkpoint Crash/lost response retries same batch Coordinator docs Crash/restart tests
Health projection OQ10 Per-source pages/events/receipt/conflict/lag status without prose Partial failures remain per-source Health docs Task outcome tests

Decision Record impact

Depends on ADR 0036, registration, admission, and all three GitHub reconciliation leaves; aligned with ADR 0019.

Decision Record

Required: ADR 0036. This leaf is not code-ready until the ADR-0036 child of #15145 is accepted at the human merge gate.

Discussion Criteria Mapping

Upstream graduated criterion This leaf's executable contract
H Runs exhaustive reconciliation; notifications/webhooks remain accelerators.
L/N Implements local coordinator with a removable existing-sync seam.
I/OQ4 Preserves GitHub acquisition -> neutral Memory-Core admission direction.
OQ10 Leaves cadence unset and emits measurements/health for later calibration.

Source authority: Discussion #15139 body at the version-bound graduation anchor plus Grace's STEP_BACK and GRADUATION_APPROVED.

Acceptance Criteria

  • AC1 — The Orchestrator task schedules only ACTIVE current-epoch sources.
  • AC2 — GitHub Workflow acquires; Memory Core admits; Orchestrator contains neither authority.
  • AC3 — Checkpoint advancement happens only after durable receipt.
  • AC4 — Crash before receipt, lost response, retry, and restart converge idempotently.
  • AC5 — Per-source failure does not halt unrelated sources; health reports exact partial status.
  • AC6 — Cadence has no hidden/default production value before the calibration leaf.
  • AC7 — Manual and shadow execution are available for evidence collection.
  • AC8 — The N seam is explicitly transitional and removable, and cannot claim completeness beyond its reconcilers.
  • AC9 — No webhook, notification, or current sync snapshot becomes source authority.

Out of Scope

Hosted connector transport, queue receiver O, source-owned outbox K, threshold selection, Bird View, or wake.

Avoided Traps

Do not put provider acquisition into Memory Core, admission into Orchestrator, event semantics into cadence code, or configure guessed intervals.

Related

Origin Session ID: 837ad74b-c2d2-413d-9aab-b7165a93a82a

Handoff Retrieval Hints

  • local community activity orchestrator receipt checkpoint retry
  • Discussion 15139 L N local coordinator

Creation Freshness

Creation duplicate sweep: immediately before filing at 2026-07-14T05:31:09.667Z, checked the latest 20 open issues and last 30 all-state A2A messages. The independent broader audit at 2026-07-14T05:13:00Z covered open and closed issues, pull requests, A2A, ADRs, and code; no equivalent owner or foreign claim existed.