{ "CI_job_history_included": false, "approvals": [], "diff_versions": [], "discussions": [ { "id": "c7081b2d5247eed075efcd34ff876d81af1dbf59", "individual_note": true, "notes": [ { "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "body": "mentioned in issue #54", "commands_changes": {}, "confidential": false, "created_at": "2026-08-30T18:20:18.687Z", "id": 1435, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 322, "noteable_iid": 51, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": true, "type": null, "updated_at": "2026-08-30T18:20:18.688Z" } ], "resolvable": false }, { "id": "da29ada36454f272a94d63af2edb851fdb7ae547", "individual_note": true, "notes": [ { "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "body": "mentioned in issue #55", "commands_changes": {}, "confidential": false, "created_at": "2026-08-30T18:20:19.108Z", "id": 1439, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 322, "noteable_iid": 51, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": true, "type": null, "updated_at": "2026-08-30T18:20:19.109Z" } ], "resolvable": false }, { "id": "84e2bdd8c9e5f5604bfeea3fad0f902df07f3862", "individual_note": true, "notes": [ { "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "body": "Completion audit — 2026-10-02\n\nBefore/after replay and candidate disclosure exist. Published dateStatuses switches away from historical trace status when counterfactual results are present, and traceReplay date selection does not independently retain the selected historical date. Local commit 51978f7 repairs the historical/hypothetical separation and trace date selection, but is unpublished. Keep open until those behaviours and atomic branch comparisons are verified on main.\n\nEvidence: 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.", "commands_changes": {}, "confidential": false, "created_at": "2026-10-02T12:54:28.693Z", "id": 1762, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 322, "noteable_iid": 51, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": false, "type": null, "updated_at": "2026-10-02T12:54:28.693Z" } ], "resolvable": false }, { "id": "f28fe3b446e1bb2d2aea3ed19e3fdbb1fd45e101", "individual_note": true, "notes": [ { "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "body": "Implemented with $luna-verified-implement and independently verified.\n\nThe calendar replays committed and local branch history before/after a decision, preserves earned balance metadata, and distinguishes observed status from hypothetical analysis and derived source eligibility.\n\nValidation: 198/198 tests across 23 files, app/spec TypeScript checks, ESLint, and production build pass. Chromium keyboard, focus-restoration, background comparison, and responsive checks at 375/768/1440 pixels pass with no page errors. Original benchmark outcomes match the pre-change baseline in all five scenarios, with and without tracing.\n\nThe implementation is in the local working tree based on 0ce33cc9d6fe7381965a9162571abe205d0b7350; no commit or push has been made.", "commands_changes": {}, "confidential": false, "created_at": "2026-10-03T13:17:30.282Z", "id": 1868, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 322, "noteable_iid": 51, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": false, "type": null, "updated_at": "2026-10-03T13:17:30.282Z" } ], "resolvable": false }, { "id": "28228619d62ba0e427d0648e474254b6a617c322", "individual_note": true, "notes": [ { "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "body": "mentioned in issue #46", "commands_changes": {}, "confidential": false, "created_at": "2026-10-03T14:23:32.887Z", "id": 1882, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 322, "noteable_iid": 51, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": true, "type": null, "updated_at": "2026-10-03T14:23:32.888Z" } ], "resolvable": false } ], "format_version": 1, "notes": [ { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-08-30T18:20:18.687108", "discussion_id": "c7081b2d5247eed075efcd34ff876d81af1dbf59", "id": 1435, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "mentioned in issue #54", "noteable_id": 322, "noteable_type": "Issue", "organization_id": null, "original_position": null, "position": null, "project_id": 35, "resolved_at": null, "resolved_by_id": null, "resolved_by_push": null, "review_id": null, "source_iid": 51, "source_item_project_id": 35, "st_diff": null, "system": true, "type": null, "updated_at": "2026-08-30T18:20:18.688039", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-08-30T18:20:19.10834", "discussion_id": "da29ada36454f272a94d63af2edb851fdb7ae547", "id": 1439, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "mentioned in issue #55", "noteable_id": 322, "noteable_type": "Issue", "organization_id": null, "original_position": null, "position": null, "project_id": 35, "resolved_at": null, "resolved_by_id": null, "resolved_by_push": null, "review_id": null, "source_iid": 51, "source_item_project_id": 35, "st_diff": null, "system": true, "type": null, "updated_at": "2026-08-30T18:20:19.109267", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-10-02T12:54:28.693564", "discussion_id": "84e2bdd8c9e5f5604bfeea3fad0f902df07f3862", "id": 1762, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "Completion audit — 2026-10-02\n\nBefore/after replay and candidate disclosure exist. Published dateStatuses switches away from historical trace status when counterfactual results are present, and traceReplay date selection does not independently retain the selected historical date. Local commit 51978f7 repairs the historical/hypothetical separation and trace date selection, but is unpublished. Keep open until those behaviours and atomic branch comparisons are verified on main.\n\nEvidence: 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.", "noteable_id": 322, "noteable_type": "Issue", "organization_id": null, "original_position": null, "position": null, "project_id": 35, "resolved_at": null, "resolved_by_id": null, "resolved_by_push": null, "review_id": null, "source_iid": 51, "source_item_project_id": 35, "st_diff": null, "system": false, "type": null, "updated_at": "2026-10-02T12:54:28.693564", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-10-03T13:17:30.282193", "discussion_id": "f28fe3b446e1bb2d2aea3ed19e3fdbb1fd45e101", "id": 1868, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "Implemented with $luna-verified-implement and independently verified.\n\nThe calendar replays committed and local branch history before/after a decision, preserves earned balance metadata, and distinguishes observed status from hypothetical analysis and derived source eligibility.\n\nValidation: 198/198 tests across 23 files, app/spec TypeScript checks, ESLint, and production build pass. Chromium keyboard, focus-restoration, background comparison, and responsive checks at 375/768/1440 pixels pass with no page errors. Original benchmark outcomes match the pre-change baseline in all five scenarios, with and without tracing.\n\nThe implementation is in the local working tree based on 0ce33cc9d6fe7381965a9162571abe205d0b7350; no commit or push has been made.", "noteable_id": 322, "noteable_type": "Issue", "organization_id": null, "original_position": null, "position": null, "project_id": 35, "resolved_at": null, "resolved_by_id": null, "resolved_by_push": null, "review_id": null, "source_iid": 51, "source_item_project_id": 35, "st_diff": null, "system": false, "type": null, "updated_at": "2026-10-03T13:17:30.282193", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-10-03T14:23:32.887399", "discussion_id": "28228619d62ba0e427d0648e474254b6a617c322", "id": 1882, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "mentioned in issue #46", "noteable_id": 322, "noteable_type": "Issue", "organization_id": null, "original_position": null, "position": null, "project_id": 35, "resolved_at": null, "resolved_by_id": null, "resolved_by_push": null, "review_id": null, "source_iid": 51, "source_item_project_id": 35, "st_diff": null, "system": true, "type": null, "updated_at": "2026-10-03T14:23:32.888331", "updated_by_id": null } ], "preexisting_missing_alternate_head": false, "source_assignees": [], "source_author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "source_created_at": "2026-08-30T18:20:17.015Z", "source_discussion_locked": null, "source_id": 322, "source_iid": 51, "source_item_metadata": { "assignee": null, "assignees": [], "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "closed_at": "2026-10-03T13:17:30.642Z", "closed_by": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "confidential": false, "created_at": "2026-08-30T18:20:17.015Z", "description": "## Parent\n\n#46\n\n## What to build\n\nLet the person inspect one traced planning decision directly on the annual calendar. The trace shows the exact state before or after the decision, highlights changes, nests all rejected candidates, overlays each date’s historical status, and can calculate clearly hypothetical alternatives from the exact pre-decision state.\n\n## Acceptance criteria\n\n- [ ] The trace provides first, previous, next, and last navigation through phases and atomic decisions.\n- [ ] One annual calendar has an explicit before/after control instead of duplicating the full calendar.\n- [ ] Added, moved, removed, shared, and unchanged placements have distinct textual or icon-backed change indicators.\n- [ ] Candidate details are collapsed by default and every actual rejected evaluation remains expandable.\n- [ ] Each horizon date is marked chosen, evaluated and rejected, not examined, or ineligible with its reason.\n- [ ] Historical status comes only from the original trace and is never overwritten by later counterfactual analysis.\n- [ ] A selected decision displays exact comparator values, deltas, first decisive objective, and final tie-breaker.\n- [ ] Counterfactual analysis from the trace uses the exact pre-decision state while preserving the selected placement’s balance, type, and provenance.\n- [ ] Joint multi-date decisions show their actual branch candidates and do not pretend that one isolated date explains the branch.\n- [ ] Domain-readable explanations appear first and raw technical details remain available through expansion.\n- [ ] Stale trace selection or analysis from an older calculation cannot update the current calendar.\n- [ ] Rendered annual-calendar tests cover before/after state, statuses, rejected candidates, technical details, and pre-decision analysis.\n\n## Blocked by\n\n- #48 — Comparer un placement final sur tout l’horizon\n- #50 — Compléter la trace des optimisations de qualité", "discussion_locked": null, "downvotes": 0, "due_date": null, "has_tasks": false, "id": 322, "iid": 51, "imported": false, "imported_from": "none", "issue_type": "issue", "labels": [], "merge_requests_count": 0, "milestone": null, "moved_to_id": null, "project_id": 35, "references": { "full": "nessar/vac-optimizer#51", "relative": "#51", "short": "#51" }, "service_desk_reply_to": null, "severity": "UNKNOWN", "start_date": null, "state": "closed", "task_completion_status": { "completed_count": 0, "count": 12 }, "time_stats": { "human_time_estimate": null, "human_total_time_spent": null, "time_estimate": 0, "total_time_spent": 0 }, "title": "Explorer une décision de trace sur le calendrier", "type": "ISSUE", "updated_at": "2026-10-03T13:17:30.646Z", "upvotes": 0, "user_notes_count": 2, "web_url": "https://gitlab.nessar.fr/nessar/vac-optimizer/-/work_items/51" }, "source_kind": "Issue", "source_path": "nessar/vac-optimizer", "source_project_id": 35, "source_reviewers": [], "source_updated_at": "2026-10-03T13:17:30.646Z", "state_events": [ { "close_after_error_tracking_resolve": false, "close_auto_resolve_prometheus_alert": false, "created_at": "2026-10-03T13:17:30.68781+00:00", "epic_id": null, "id": 623, "imported_from": 0, "issue_id": 322, "merge_request_id": null, "namespace_id": 38, "source_commit": null, "source_merge_request_id": null, "state": 2, "user_id": 8 } ], "target_number": 51 }