Repository navigation
[S2] Reprendre la branche sync existante (df2ad1d, 11/08) et la rebaser sur v7.62 #26
Description
Activity
- added a commit that references this issue
on Sep 22, 2026 S2 rescoped — the rebase is superseded, but the old branch still carries 9 commits that must be checked by content
Revived by user decision (2026-09-23: dormant issues are to be driven to completion). Measured today on
origin/sync/upstream-rebase-2026-07-25(last commit57472ca, 2026-08-28):count non-merge commits on the branch, not in main, not inupstream/main52 patch-equivalent commit already in main(git cherry)14 no patch-equivalent, but a commit with the same subject exists in main(rebased copies)29 same subject absent from main9 The strategy S2 was written for — rebase this branch onto upstream, then land it — has been replaced by per-file absorption of upstream into
main(S4-b/c/d/e, merged file by file). Rebasing the branch is therefore no longer the deliverable. What remains is the question S2 existed to protect: is anything of ours only on that branch? The 9 candidates:605c1f0phase2a pre-cherry-pick fork/ tree ·9d38bceserver_tool_use suppression before index-remap ·202c17a--isolateby default ·4dfbe46Bun 1.3.14 typecheck fixes ·44dd641cluster-critical Invariant 8 ·76ad426qwen3.6 notice gate as a Set ·1fffab8web-search: no myia host fallback, requireSEARXNG_URL·a252f1cservedSlotIdscoexistence (Claude Desktop) ·57472caindex remap viaMap<orig,emitted>.A missing subject is not a missing change: several of these likely landed in
mainunder another commit (the S4-a index-remap work, the server_tool_use ordering described in CLAUDE.md). Content, not SHA or subject, decides.New DoD
- Each of the 9 has a verdict: present in main (name the commit or the code anchor), port (small PR), or obsolete (why).
- Ports merged, each with its test.
- Branch left in place (no deletion without proof of preservation). Closing this issue deletes nothing.
— myia-ai-01:claudish (coordinator)
#26 — verdicts on the 9 commits (content-decided, per the rescope)
Machine: po-2024, base
main@937e124b, branchorigin/sync/upstream-rebase-2026-07-25@57472ca. Each verdict names its anchor or its reason; content, not SHA or subject.commit verdict anchor / reason 605c1f0phase2a fork/ tree extractionpresent All 8 files live in main ( fork/middleware/request-logger.ts,fork/server/relay.tsecosystem…) and evolved far past the extraction — request-logger now writes attribution envelopes ({ts,src,machine,model,pid,…,body}).9d38bceserver_tool_use suppression BEFORE index-remappresent Main's parser is single-pass (suppression state inline at parse time; the tool is even executed — webReader — and assistant-side tool_resultsuppressed per the 2026-08-11 live capture). The two-pass ordering bug this fixed is structurally impossible in main's architecture; behavior pinned byformat-translation.test.ts"Chantier D".202c17a--isolateby defaultport — PR #361 Flag exists in current bun ("fresh global object. Leaked handles from one file cannot affect another"); neither the testscript nor the strict runner's spawn used it. Measured A/B on this machine: 9 → 6 failing entries — the 5 mcp-searxng + 1 web-search failures were cross-file pollution victims (they pass isolated); 3 order-dependent module-load deaths surface instead (pre-existing latent, see PR).4dfbe46Bun 1.3.14 typecheck fixesobsolete (absorbed by rewrite) All 4 touched files were rewritten wholesale by S4; none of the commit's hunks exist in today's tree. Side-finding: main's scoped tscbaseline today is 361 errors (TS6133-dominant, incl. 15 across those same 4 files and a TS2769 intui/test-provider.ts) — typecheck is not currently a merge gate; this port would be noise.44dd641Invariant 8 = post-#8 relay header contractpresent relay.test.ts:140"preserves X-Claudish-Machine, injects x-proxy-key (not x-api-key)" +:184"ai-01 Opus passthrough — stale x-api-key dropped, OAuth preserved" — exactly the contract the cluster-critical test asserted, against the realforwardToUpstream.76ad426qwen3.6 notice gate as a Setobsolete composed-handler.ts:537still string-comparesqwen3.6-35b-a3b. The motivating condition — more economy-tier models to gate — never materialized; a single-member Set is ceremony with no behavior change. Revisit when a second economy model lands.1fffab8requireSEARXNG_URL(no myia fallback)port — PR #360 Stronger case today than in August: the default points at search.myia.io, behind IIS Basic Auth since 2026-08-19 — the default could only 401 (any working setup carries creds in the userinfo and sets the full URL anyway). Ported adapted to the per-callsearxngConfig()shape; the inverted pin ("unset → default") was the defect; new pin proves 0 network calls.a252f1cservedSlotIdscoexistence (Claude Desktop)obsolete No servedSlotIdsproducer exists in our tree — slot mode was upstream's shape, and this guard existed for the rebase coexistence strategy that S4's per-file absorption replaced. Our/v1/modelsis the fork's own aggregator (opt-in viaCLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1); its credential-filtering half is polish on an opt-in route. If Claude Desktop/slot mode ever becomes a target, this commit is the reference.57472caindex remap viaMap<orig,emitted>+ cluster-critical tests + 2 fixturespresent (behavior) Main's index-mapping layer implements the whole contract — jumped starts remapped, pair remembered, orphan delta/stop dropped whole — pinned by anthropic-sse-s4a.test.ts(4 describes: index mappingb48042c, filtered path, no orphan event headers, abandoned tail) and documented in CLAUDE.md §S4-a. The mechanism differs (single-pass tracking; no Map import needed), and the branch's two fixture shapes (delta-unknown-index,index-skip-1) are the orphan/jump classes those describes pin.Score: 4 present · 3 obsolete · 2 ported (PR #360
Refs #26, PR #361Refs #26).DoD state. ☑ verdicts complete — ☑ branch untouched (nothing deleted, per the rescope) — ☐ ports merged: both PRs await review; #26 stays open until they land (their bodies carry
Refs, notCloses, by design).Two side-findings worth their own eyes (not actioned here): main's 361-error scoped-tsc baseline (typecheck is de facto not a gate — earlier "tsc OK" claims in cycle reports should be read against this), and the 3 order-dependent test files (
cli.test.ts,cli-passthrough.test.ts,native-handler-advisor.test.ts) that only ever loaded on warmed globals — exposed by #361's flag.[po-203] S2 — rapport uniquement (deep-queue repli du 11/10, ~02:10Z) : la branche existe, elle n'est PAS perdue, mais la premise « rebaser sur v7.62 » est périmée et le coût a triplé de dimension.
État réel de la branche
sync/upstream-rebase-2026-07-25:- Locale : tip
df2ad1de(11/08, merge PR port: carry the five 2026-08-10 PRs onto the upstream-sync branch (unblocks #12) #14 — ce que décrivait le corps de l'issue). - Origin : tip
57472cab(28/08, « refactor(anthropic-sse): unify index remap via Map<orig,emitted> (refactor(anthropic-sse): unify index remap via Map<orig,emitted> (closes #127 + #133) #16) ») — 1 commit de plus que le local. Local = ancêtre d'origin : pas de divergence, le local est simplement en retard d'un commit. Le tip réel à reprendre est57472cab(la PR refactor(anthropic-sse): unify index remap via Map<orig,emitted> (closes #127 + #133) #16 porte la couche S4 d'index-mapping — la perdre en repartant du local serait un contresens). - Base commune avec
upstream/main:f6bc939c(2026-07-24) ; la branche porte 53 commits, upstream en a accumulé 879 depuis.
Sondage de rebasabilité (
git merge-tree --write-tree, ORT, lecture seule — rien n'est touché, aucun tag de sauvegarde requis pour CE rapport) : 21 fichiers en conflit contreupstream/main(v10.4.1), dont :- les 4 fichiers sensibles eux-mêmes :
composed-handler.ts,proxy-server.ts,anthropic-sse.ts,openai-sse.ts; - le noyau adjacent :
native-handler.ts,config-schema.ts,profile-config.ts,provider-profiles.ts,routing-rules.ts(+test),transport/anthropic-compat.ts(+test),transport/openai.ts,gemini-sse.ts,ollama-jsonl.ts,openai-responses-sse.ts,format-translation.test.ts; - 2 add/add :
collect-sse-message.ts(+test) — les deux côtés ont créé le fichier ; - les docs racine :
CLAUDE.md,ROADMAP.md.
Verdict : rebasable au sens strict (la branche vit, l'historique est sain, aucun commit perdu), mais le plan « rebase sur v7.62 » du corps ne mène nulle part — v7.62 est 1 020 commits derrière la tête upstream et 3 majors cassantes (8.0/9.0/10.0) sont passées entre-temps. La question S2 se confond désormais avec l'arbitrage (c) de #267 : soit on rebase la branche sur v10.4.1 et ses 21 conflits (dont l'a priori le plus lourd est l'add/add
collect-sse-message— les deux camps ont construit le même organe), soit la branche devient un témoin de l'état d'août et la resync repart demain. C'est un arbitrage user, pas un geste worker.(Toutes les mesures :
git rev-parse/ls-remote/merge-base --is-ancestor/rev-list --count/merge-tree --write-tree, clone po-203, lecture seule.)- Locale : tip
Epic : #24
Point de départ : ne pas repartir de zéro
Une sync est déjà engagée et a été poursuivie plus loin que la mémoire d'équipe ne l'indiquait :
sync/upstream-rebase-2026-07-25df2ad1d(2026-08-11) — merge de la PR port: carry the five 2026-08-10 PRs onto the upstream-sync branch (unblocks #12) #14 (port/0810-onto-upstream-sync) portant les fixes relay/sidecar sur la syncRepartir de
mainjetterait ce travail. Ce lot reprend l'existant.Travail
sync/upstream-rebase-2026-07-25surupstream/mainà jour (v7.62.0,7515317).CredentialAuthorityupstream).Garde-fous
pre-upstream-sync-2026-07-25, off-site).Definition of done
upstream/mainv7.62.0.