Garantir l’invariance et la réactivité sous charge #55

Closed
opened 2026-08-30 20:20:18 +02:00 by nessar · 5 comments
nessar commented 2026-08-30 20:20:18 +02:00 (Migrated from 172.24.0.1:8928)

Parent

#46

What to build

Guarantee that complete tracing and counterfactual analysis remain observational and responsive under representative and loaded annual plans. The planning outcome appears when planning work completes, tracing cannot consume the planner deadline or alter its decisions, stale or failed explanation work is isolated, and the exact latest trace remains local and untruncated.

Acceptance criteria

  • Planning-work time is accounted separately from trace creation, materialization, transfer, and rendering.
  • A deliberately slow trace consumer cannot change candidate order, completed phases, interruption point, incumbent, or final outcome.
  • The planning outcome becomes usable before a delayed full trace finishes loading.
  • Trace transfer or rendering failure leaves the planning outcome and calendar intact with a local explanation error.
  • Counterfactual failure leaves the selected plan intact and can be retried or abandoned safely.
  • Starting a new calculation terminates or ignores every trace and counterfactual task from the previous calculation.
  • Only the latest trace is retained in memory; no trace is persisted, exported, or sent off-device.
  • Representative and loaded benchmark scenarios preserve their pre-tracing planning outcomes and planning-work budget.
  • A loaded scenario proves that every actual evaluation is retained even when trace delivery exceeds ten seconds.
  • The UI thread remains responsive while planning, tracing, and counterfactual analysis run.
  • Existing lint, type-check, unit-test, benchmark, and production-build checks pass without a new solver, backend, or test framework.

Blocked by

  • #51 — Explorer une décision de trace sur le calendrier
  • #52 — Expliquer un calcul incomplet
  • #53 — Expliquer un conflit d’obligations
## Parent #46 ## What to build Guarantee that complete tracing and counterfactual analysis remain observational and responsive under representative and loaded annual plans. The planning outcome appears when planning work completes, tracing cannot consume the planner deadline or alter its decisions, stale or failed explanation work is isolated, and the exact latest trace remains local and untruncated. ## Acceptance criteria - [ ] Planning-work time is accounted separately from trace creation, materialization, transfer, and rendering. - [ ] A deliberately slow trace consumer cannot change candidate order, completed phases, interruption point, incumbent, or final outcome. - [ ] The planning outcome becomes usable before a delayed full trace finishes loading. - [ ] Trace transfer or rendering failure leaves the planning outcome and calendar intact with a local explanation error. - [ ] Counterfactual failure leaves the selected plan intact and can be retried or abandoned safely. - [ ] Starting a new calculation terminates or ignores every trace and counterfactual task from the previous calculation. - [ ] Only the latest trace is retained in memory; no trace is persisted, exported, or sent off-device. - [ ] Representative and loaded benchmark scenarios preserve their pre-tracing planning outcomes and planning-work budget. - [ ] A loaded scenario proves that every actual evaluation is retained even when trace delivery exceeds ten seconds. - [ ] The UI thread remains responsive while planning, tracing, and counterfactual analysis run. - [ ] Existing lint, type-check, unit-test, benchmark, and production-build checks pass without a new solver, backend, or test framework. ## Blocked by - #51 — Explorer une décision de trace sur le calendrier - #52 — Expliquer un calcul incomplet - #53 — Expliquer un conflit d’obligations
nessar commented 2026-10-02 14:54:24 +02:00 (Migrated from 172.24.0.1:8928)

Completion audit — 2026-10-02

Not complete: docs/benchmark/README.md records up to 5,950.9 ms extra main-thread timer delay during loaded trace-artifact delivery. This directly fails the responsive-UI criterion here. Earlier owner exceptions closed #43/#45/#11, not this ticket. Outcome/artifact separation and deterministic benchmarks exist, but slow-consumer deadline invariance, full trace retention beyond ten seconds and failure isolation still need the specified verification.

Evidence: reviewed issue requirements/discussions and f1f0835 (published application source; live main 57a39c81 only adds Renovate configuration). Tested an isolated checkout of the published source: 20 test files, 157/157 tests passed, including the five benchmark scenarios. Local commit 51978f7 and uncommitted edits were inspected separately and are not evidence of published completion.

Completion audit — 2026-10-02 Not complete: docs/benchmark/README.md records up to 5,950.9 ms extra main-thread timer delay during loaded trace-artifact delivery. This directly fails the responsive-UI criterion here. Earlier owner exceptions closed #43/#45/#11, not this ticket. Outcome/artifact separation and deterministic benchmarks exist, but slow-consumer deadline invariance, full trace retention beyond ten seconds and failure isolation still need the specified verification. Evidence: reviewed issue requirements/discussions and f1f0835 (published application source; live main 57a39c81 only adds Renovate configuration). Tested an isolated checkout of the published source: 20 test files, 157/157 tests passed, including the five benchmark scenarios. Local commit 51978f7 and uncommitted edits were inspected separately and are not evidence of published completion.
nessar commented 2026-10-02 14:54:51 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in issue #10

mentioned in issue #10
nessar commented 2026-10-03 16:23:31 +02:00 (Migrated from 172.24.0.1:8928)

Implemented with $luna-verified-implement and independently verified.

Planning work is isolated from trace capture, materialization, and transfer. The outcome and stable explanation are delivered before the complete trace. Worker delivery now keeps at most 16 packets of 64 operations in flight and waits for receiver acknowledgements. Receiver batches yield, release consumed packets, and retain every evaluation. Pending duplicate snapshots coalesce without dropping distinct candidates; failures and stale calculations remain isolated. Benchmark helpers release prior calculation references between runs.

Validation: 201/201 tests across 23 files; application/specification type checks, ESLint, and production build pass. All five scenarios match pre-change outcomes in traced/untraced core comparisons. Three loaded browser repetitions each return the same 144-placement plan and a ready trace containing all 868,919 candidate records. Planning work is 5.81–6.18 seconds, within ten seconds; the full trace arrives 24.09–25.10 seconds after the usable outcome. Maximum extra 50 ms heartbeat delay is 946.8 ms, down from 4.65–5.49 seconds before acknowledged delivery. No browser errors or renderer crashes occurred in the final run.

A separate twelve-balance rendered-calendar run completes full trace navigation and counterfactual comparison without errors (maximum extra heartbeat delay 540.3 ms). Keyboard/focus restoration and responsive widths 375/768/1440 pass. Exact results and limits are recorded in docs/benchmark/README.md (2026-10-03).

These are Chromium desktop measurements with a mobile viewport and 4× CPU throttling, not physical-phone evidence. Complete loaded traces still require substantial memory; production build has two warning-budget notices and stays within hard budgets.

Implementation is in the local working tree based on 0ce33cc9d6fe7381965a9162571abe205d0b7350; no commit or push was requested.

Implemented with $luna-verified-implement and independently verified. Planning work is isolated from trace capture, materialization, and transfer. The outcome and stable explanation are delivered before the complete trace. Worker delivery now keeps at most 16 packets of 64 operations in flight and waits for receiver acknowledgements. Receiver batches yield, release consumed packets, and retain every evaluation. Pending duplicate snapshots coalesce without dropping distinct candidates; failures and stale calculations remain isolated. Benchmark helpers release prior calculation references between runs. Validation: 201/201 tests across 23 files; application/specification type checks, ESLint, and production build pass. All five scenarios match pre-change outcomes in traced/untraced core comparisons. Three loaded browser repetitions each return the same 144-placement plan and a ready trace containing all 868,919 candidate records. Planning work is 5.81–6.18 seconds, within ten seconds; the full trace arrives 24.09–25.10 seconds after the usable outcome. Maximum extra 50 ms heartbeat delay is 946.8 ms, down from 4.65–5.49 seconds before acknowledged delivery. No browser errors or renderer crashes occurred in the final run. A separate twelve-balance rendered-calendar run completes full trace navigation and counterfactual comparison without errors (maximum extra heartbeat delay 540.3 ms). Keyboard/focus restoration and responsive widths 375/768/1440 pass. Exact results and limits are recorded in docs/benchmark/README.md (2026-10-03). These are Chromium desktop measurements with a mobile viewport and 4× CPU throttling, not physical-phone evidence. Complete loaded traces still require substantial memory; production build has two warning-budget notices and stays within hard budgets. Implementation is in the local working tree based on 0ce33cc9d6fe7381965a9162571abe205d0b7350; no commit or push was requested.
nessar (Migrated from 172.24.0.1:8928) closed this issue 2026-10-03 16:23:31 +02:00
nessar commented 2026-10-03 16:23:33 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in issue #46

mentioned in issue #46

Preserved GitLab #55 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 0; visible source notes: 4.

gitlab-35-issue-55.md (SHA-256 65f599b7b8d49dde4ec4994e679a524374d3ee051b2fe84b2b1413cf643fa8cb)

gitlab-35-issue-55.json (SHA-256 52e7e6b5583bab60bf0d1b09da66626dfdb0020b580438e3880c4a47704ab81d)

Old CI job execution and reports are omitted. Original source files and rollback backups remain protected.

<!-- gitlab-to-gitea-history:35:Issue:55 --> Preserved GitLab #55 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 0; visible source notes: 4. [gitlab-35-issue-55.md](https://gitea.nessar.fr/attachments/3a6b1a2c-2260-4bb2-8f40-4397dd431460) (SHA-256 `65f599b7b8d49dde4ec4994e679a524374d3ee051b2fe84b2b1413cf643fa8cb`) [gitlab-35-issue-55.json](https://gitea.nessar.fr/attachments/e521ef10-fe26-4d74-8e66-9ad771919f3a) (SHA-256 `52e7e6b5583bab60bf0d1b09da66626dfdb0020b580438e3880c4a47704ab81d`) Old CI job execution and reports are omitted. Original source files and rollback backups remain protected.
gitea-emergency added this to the Development project 2026-10-11 22:14:32 +02:00
gitea-emergency moved this to Closed in Development on 2026-10-11 22:14:32 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nessar/vac-optimizer#55