|
| 1 | +# Upstream synchronization campaign — 2026-11-01 |
| 2 | + |
| 3 | +This campaign supplements the [canonical integration ledger](../UPSTREAM_308_CANDIDATE_AUDIT_20260912.md); it does not supersede older unresolved semantic dispositions. Machine status and per-checkpoint acceptance live in [ledger.json](ledger.json). [commits.tsv](commits.tsv) enumerates all 933 reachable campaign commits once, including 578 merges and 355 non-merges. Subsystem tags derive from changed paths; they are triage, not proof of implementation. |
| 4 | + |
| 5 | +## Verified baseline |
| 6 | + |
| 7 | +- Fork `origin/main`: `ff8b8906c6807953336609cc7f464e7e4ef3cf7b`. |
| 8 | +- Common ancestor: `8df0639c6268afe9888979e72b9797aa2cc1de7c`. |
| 9 | +- Observed upstream: `edc2301b022b1f5e1e0ec11e291917e22e9736aa`. |
| 10 | +- Pinned campaign: `6c0ce230ee26ab8d263eb5235ebf73755558344e`; nine subsequent commits deferred. |
| 11 | +- `git rev-list --left-right --count origin/main...upstream/main`: **348 fork-only / 942 upstream-only** after fetch. |
| 12 | +- All consecutive handoff checkpoints and the final nine-commit extension pass `git merge-base --is-ancestor`; historical batch counts are correct. |
| 13 | +- One open PR: #25, public documentation cleanup; no sync PR at inventory time. |
| 14 | +- Classic branch-protection endpoint returns 404. Active `protect` ruleset prevents deletion/non-fast-forward of default branch; it requires no status checks. No gate was bypassed or weakened. |
| 15 | +- Main checkout contains pre-existing untracked local artifacts and the handoff. Implementation uses separate clean worktrees; unrelated artifacts remain intact. |
| 16 | + |
| 17 | +## Sequence and acceptance |
| 18 | + |
| 19 | +1. Finish narrow security/dependency fixes and verify actual advisories, versions and fork applicability. Preserve installer download/extraction limits and explicit workspace authorization. |
| 20 | +2. Harden the local/Jenkins Actions policy guard and add ancestry verification with positive/negative checks. |
| 21 | +3. Complete true merge of upstream `5dc83ac9fa363d51706a70977840b61ea59ce9db` (13A, 79 commits); reconcile reviewed hotfix/guard commits, retaining upstream merge ancestry. Publish only sanitized draft branches. |
| 22 | +4. Later batches 13B–13K must build on the previous reviewed integration result. Open stacked draft PRs with explicit dependency targets, or leave subsequent checkpoints locally planned. Never open independent PRs based on stale main. |
| 23 | +5. Run focused checks after each completed batch, then full exact-SHA Jenkins qualification before recommending merge. Native Windows, >4 GiB SQLite offsets, graph determinism and sanitizer/recovery checks remain explicit gates when affected. Pending gates are not successful gates. |
| 24 | + |
| 25 | +Every batch must preserve CLI JSON/compact contracts, native HTTP, daemon ownership, durable storage and source provenance. No MCP server, transport/session registration or mandatory MCP dependencies. Retain useful shared changes via native CLI operations. Record every material exclusion/adaptation and schema migration in its batch receipt. |
| 26 | + |
| 27 | +## CI venue and operator gap |
| 28 | + |
| 29 | +PR #26's Jenkins-only policy remains mandatory. `Jenkinsfile` executes the Actions policy guard; every pushed branch must pass it before publication. Do not dispatch GitHub workflows. |
| 30 | + |
| 31 | +Read-only live Jenkins inspection found `codebase-memory-cli-main` (local `refs/heads/main`) and `codebase-memory-cli-release-tooling` (local `refs/heads/release-tooling`), both with no configured triggers. The release-tooling job's latest pre-campaign build was #83 SUCCESS; it does not validate campaign code. No CLI multibranch PR-discovery job was present in the inspected job list. |
| 32 | + |
| 33 | +To verify PRs automatically, an operator should configure a Jenkins GitHub Branch Source multibranch job for the fork, enable draft/regular PR discovery as intended, register GitHub webhook delivery to Jenkins, expose branch/PR-specific status contexts, and configure the default-branch ruleset to require those Jenkins contexts after a successful trial. Do not substitute Actions checks or weaken protection. A dedicated exact-commit job can qualify this campaign without changing existing jobs. Record actual build URLs and source revisions in receipts. |
| 34 | + |
| 35 | +## Platform and benchmark follow-up |
| 36 | + |
| 37 | +Use the existing pinned corpus at `benchmark-runs/linux/20260911T045124Z/BENCHMARK_CORPUS.frozen.json` for Linux/Windows parity: codebase-memory-cli `0c6d00d6011c1fdb50b90c53538f536cc3b5e4d9`, specgen-aw `466debfec788c7aeeee858c6b51e98b1b9afe653`, agent-workflow `e84925205301ff7169aff5a8cb14d10680c3739c`, agent-workflow-spec-contracts `0b32e556ef33bd00c0111d30a8b9225eb5196fcd`, and herdr `61ca85d5895bb530b59da85beeccdd767f4720d2`. Preserve these manifest pins; candidate version and platform evidence are separate. No current benchmark or Windows result is implied by this inventory. |
0 commit comments