From 91d1d0d6f488356a762db5ed8c43fe8bff5a72db Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 29 Jul 2026 17:48:45 +0200 Subject: [PATCH] docs: Campaign N CLOSED - user-accepted; #260 closed; #262 filed The acceptance session on Coldeve ran 20 portal transits with zero wedges and captured a real wire-loss recovery live (resend/s=1 nak-in=1 mid-session, converged net-final ledger, graceful logout) - the event class that permanently killed sessions before N1. #260 is closed on that evidence. The one unrelated observation (first-login run-on-the-spot until a recall reset, self-healed, not reproduced on relogin) is filed as #262 with hypotheses and the no-workaround rule restated. Campaign doc, roadmap, and CLAUDE.md pointers flipped to the closed record. Co-Authored-By: Claude Fable 5 --- CLAUDE.md | 2 +- docs/ISSUES.md | 51 ++++++++++++++++--- .../2026-07-29-network-transport-campaign.md | 12 +++-- 3 files changed, 54 insertions(+), 11 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 10019f2f..f3fc1342 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -572,7 +572,7 @@ render/streaming work at `claude-memory/project_render_pipeline_digest.md`. Documentation entry point: [`docs/README.md`](docs/README.md). For canonical state, read in this order: -- [`docs/plans/2026-07-29-network-transport-campaign.md`](docs/plans/2026-07-29-network-transport-campaign.md) — **ACTIVE: Campaign N, the retail reliable-transport port.** The #260 root cause (no packet-loss recovery in either direction), the retail mechanism map with symbols, the ACE constraint table, slices N0–N6 with gates and review assignments, and the landmine list. Read this before touching anything under `src/AcDream.Core.Net/`. +- [`docs/plans/2026-07-29-network-transport-campaign.md`](docs/plans/2026-07-29-network-transport-campaign.md) — Campaign N, the retail reliable-transport port — **CLOSED 2026-07-29, user-accepted** (#260 closed; a real wire loss recovered live during the acceptance session). Still the SSOT for the transport mechanism, the ACE constraint table, and the landmine list — read it (or `claude-memory/project_network_transport_digest.md`) before touching anything under `src/AcDream.Core.Net/`. - [`docs/plans/2026-07-27-vulkan-campaign.md`](docs/plans/2026-07-27-vulkan-campaign.md) — Campaign V, OpenGL → Vulkan — **CLOSED 2026-07-29**; the completed record of the RHI contract, V0–V11 slices, and the GL deletion. Historical reference for `src/AcDream.App/Rendering/`. - [`docs/plans/2026-05-12-milestones.md`](docs/plans/2026-05-12-milestones.md) — milestone targets + freeze list per milestone - [`docs/plans/2026-04-11-roadmap.md`](docs/plans/2026-04-11-roadmap.md) — what's shipped, what's in flight, what's next diff --git a/docs/ISSUES.md b/docs/ISSUES.md index 22aa74d7..652844be 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -97,6 +97,41 @@ Copy this block when adding a new issue: --- +## #262 — Run-on-the-spot at first login: no displacement until a recall reset + +**Status:** OPEN +**Severity:** MEDIUM (self-heals via any teleport; first-login only so far) +**Filed:** 2026-07-29 (Campaign N acceptance run 1 on Coldeve) +**Component:** login flow / local movement / physics readiness + +**Symptom (user report):** on the first login of the acceptance session the +character animated running but did not move ("ran on the spot"); casting a +recall spell — i.e. the first server teleport/position reset — fixed it, and +movement was normal for the rest of a 20-teleport session. The second login +(same binary, minutes later) did not reproduce. + +**Evidence:** `artifacts/coldeve-acceptance-20260729/ +acceptance-run1-20teleports-1recovery.log` (local). The login reveal was +clean — generation 1 reached collision=True before world-visible — so the +reveal gate is not the culprit. The log shows a large first-position +recenter jump (169,180)→(135,102)@0x87660009. Not yet attributed. + +**Hypotheses to test (in order):** (a) server-side position rejection until +the first ForcePosition — our AutonomousPosition stream may have been +ignored by ACE until a position reset (check whether early 0xF61C sends +flowed and what ACE echoed); (b) client physics landed before the walkable +was resident at the exact spawn cell (the run-on-spot presentation is what +a missing contact plane looks like); (c) a Campaign-N interaction is NOT +suspected (the transport ledger was clean at login) but rule it out by +checking the first minute's [net-out]/[net-tick] against the movement +input timeline. + +**Next:** reproduce with `ACDREAM_PROBE_RESOLVE=1` + `ACDREAM_PROBE_NET=1` +on a fresh login; the resolve lines name the missing piece directly. Do NOT +add a workaround (no auto-recall, no synthetic position kick). + +--- + ## #261 — Wire LinkStatusSnapshot.PacketLossPercentage from retail's formula **Status:** OPEN @@ -121,14 +156,18 @@ and the indicator shows non-zero loss under `tools/run-connected-loss-gate.ps1`. ## #260 — Portal-network wedge: outbound actions die + native/GPU memory climbs -**Status:** FIX IMPLEMENTED 2026-07-29 — **Campaign N slices N0–N6 all -shipped and reviewed** (outbound resend `43e60a69`, inbound +**Status:** CLOSED 2026-07-29 — **Campaign N complete and user-accepted.** +Slices N0–N6 all shipped and reviewed (outbound resend `43e60a69`, inbound sequence-aligned ISAAC `46d209d0`, retail ack cadence `0265cc42`, NAK emission + reclaim `852a59e3`, the permanent loss gate `4e290f00`, -handshake/assembler hardening `f9c5e47e`). The loss gate observes real -injected loss recovering in both directions with the cipher ledger -converged. CLOSES when the user's Coldeve endurance session passes the -historic 15-minute wedge horizon. Original root-cause record below. +handshake/assembler hardening `f9c5e47e`). Acceptance: the user's Coldeve +session ran 20 portal transits with zero wedges, and the log captured a +REAL wire loss recovering live (`resend/s=1 nak-in=1` mid-session; +`[net-final] resends=1 nak-in=1 … cksum-fail=0 … nakset=0` — evidence at +`artifacts/coldeve-acceptance-20260729/`, local). The exact event that +permanently killed sessions two days earlier is now a sub-second +non-event. One unrelated first-login anomaly filed as #262. Original +root-cause record below. ([`docs/plans/2026-07-29-network-transport-campaign.md`](plans/2026-07-29-network-transport-campaign.md)). The wedge is missing packet-loss recovery in BOTH directions: (a) no outbound retransmission — ACE's `RequestRetransmit` lists are parsed and consumed diff --git a/docs/plans/2026-07-29-network-transport-campaign.md b/docs/plans/2026-07-29-network-transport-campaign.md index 8c58d632..0bbda6be 100644 --- a/docs/plans/2026-07-29-network-transport-campaign.md +++ b/docs/plans/2026-07-29-network-transport-campaign.md @@ -1,9 +1,13 @@ # Campaign N — Retail-Faithful Network Transport -**Status: IMPLEMENTATION COMPLETE 2026-07-29 — all seven slices (N0–N6) -shipped and reviewed. Remaining acceptance: the user Coldeve endurance -session (§8 rung 4) — play past the historic 15-minute wedge horizon with -portal churn; the `[net-tick]`/`[net-final]` counters are the evidence.** +**Status: CLOSED 2026-07-29 — user-accepted.** All seven slices shipped and +reviewed; the acceptance session on Coldeve ran 20 portal transits with +zero wedges and captured a REAL wire-loss recovery live (`resend/s=1 +nak-in=1` mid-session; converged `[net-final]` ledger; graceful logout) — +the exact event class that permanently killed sessions before N1. Evidence: +`artifacts/coldeve-acceptance-20260729/` (local). #260 closed; the one +unrelated first-login anomaly observed is filed as #262. THE CAMPAIGN IS +CLOSED. acdream cannot survive a single lost UDP packet in either direction. This campaign ports retail's reliable-transport mechanism (the Sept 2013 named