{ "CI_job_history_included": false, "approvals": [], "diff_versions": [], "discussions": [ { "id": "db8510794e204cbcd7ca04ba3e15caab9017af7a", "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 #50", "commands_changes": {}, "confidential": false, "created_at": "2026-08-30T18:20:16.744Z", "id": 1426, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 320, "noteable_iid": 49, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": true, "type": null, "updated_at": "2026-08-30T18:20:16.745Z" } ], "resolvable": false }, { "id": "f067160c7b7281493ebeebc0c5221b6667c01133", "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 #53", "commands_changes": {}, "confidential": false, "created_at": "2026-08-30T18:20:18.228Z", "id": 1433, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 320, "noteable_iid": 49, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": true, "type": null, "updated_at": "2026-08-30T18:20:18.229Z" } ], "resolvable": false }, { "id": "0397e14739be94de04eaf069b4f6eeedc1cceb0a", "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\nOriginal-run early-phase tracing, separate artifact readiness and snapshot ownership exist. However, the published preference trace test explicitly expects the used first-compatible balance candidate to remain evaluated-rejected, with a separate chosen placement event. Candidate acceptance and decision grouping need verification against the exact-history requirement; local commit 51978f7 changes TraceRecorder candidate grouping. The required joint-obligation/shared/earned-chain trace coverage also needs verification before closure.\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:30.459Z", "id": 1768, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 320, "noteable_iid": 49, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": false, "type": null, "updated_at": "2026-10-02T12:54:30.459Z" } ], "resolvable": false }, { "id": "ce3864336db1d44f3da0da55e352a38066c806e6", "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 original run records obligation branches, sequential at-risk placement, preference comparisons, shared satisfaction, earned activation, and exact state deltas with selected branch ancestry.\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:27.647Z", "id": 1864, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 320, "noteable_iid": 49, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": false, "type": null, "updated_at": "2026-10-03T13:17:27.647Z" } ], "resolvable": false }, { "id": "0daaa99c2ab566372470c7d339ada8d798bdbdc4", "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.826Z", "id": 1880, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 320, "noteable_iid": 49, "noteable_type": "Issue", "project_id": 35, "resolvable": false, "system": true, "type": null, "updated_at": "2026-10-03T14:23:32.827Z" } ], "resolvable": false } ], "format_version": 1, "notes": [ { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-08-30T18:20:16.744985", "discussion_id": "db8510794e204cbcd7ca04ba3e15caab9017af7a", "id": 1426, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "mentioned in issue #50", "noteable_id": 320, "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": 49, "source_item_project_id": 35, "st_diff": null, "system": true, "type": null, "updated_at": "2026-08-30T18:20:16.745906", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-08-30T18:20:18.228291", "discussion_id": "f067160c7b7281493ebeebc0c5221b6667c01133", "id": 1433, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "mentioned in issue #53", "noteable_id": 320, "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": 49, "source_item_project_id": 35, "st_diff": null, "system": true, "type": null, "updated_at": "2026-08-30T18:20:18.229346", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-10-02T12:54:30.459956", "discussion_id": "0397e14739be94de04eaf069b4f6eeedc1cceb0a", "id": 1768, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "Completion audit — 2026-10-02\n\nOriginal-run early-phase tracing, separate artifact readiness and snapshot ownership exist. However, the published preference trace test explicitly expects the used first-compatible balance candidate to remain evaluated-rejected, with a separate chosen placement event. Candidate acceptance and decision grouping need verification against the exact-history requirement; local commit 51978f7 changes TraceRecorder candidate grouping. The required joint-obligation/shared/earned-chain trace coverage also needs verification before closure.\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": 320, "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": 49, "source_item_project_id": 35, "st_diff": null, "system": false, "type": null, "updated_at": "2026-10-02T12:54:30.459956", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-10-03T13:17:27.647098", "discussion_id": "ce3864336db1d44f3da0da55e352a38066c806e6", "id": 1864, "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 original run records obligation branches, sequential at-risk placement, preference comparisons, shared satisfaction, earned activation, and exact state deltas with selected branch ancestry.\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": 320, "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": 49, "source_item_project_id": 35, "st_diff": null, "system": false, "type": null, "updated_at": "2026-10-03T13:17:27.647098", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-10-03T14:23:32.826734", "discussion_id": "0daaa99c2ab566372470c7d339ada8d798bdbdc4", "id": 1880, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "mentioned in issue #46", "noteable_id": 320, "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": 49, "source_item_project_id": 35, "st_diff": null, "system": true, "type": null, "updated_at": "2026-10-03T14:23:32.827685", "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:15.986Z", "source_discussion_locked": null, "source_id": 320, "source_iid": 49, "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:28.230Z", "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:15.986Z", "description": "## Parent\n\n#46\n\n## What to build\n\nExpose the original calculation history for validation, joint obligations, at-risk placement, and ordered preferences. The advanced trace view groups the actual run by phase, atomic planning decision, and candidate evaluation, including joint multi-date branches, shared placements, pruning reasons, and earned-entitlement activation. The history is captured during the producing run rather than reconstructed afterward.\n\n## Acceptance criteria\n\n- [ ] The calculation context exposes trace readiness separately from the planning outcome.\n- [ ] The outcome can become available before trace delivery completes.\n- [ ] Trace events for validation, obligations, at-risk balances, and every ordered preference come from the original run.\n- [ ] Events are grouped as calculation phase, atomic planning decision, then actual candidate evaluations.\n- [ ] A joint obligation branch remains one atomic multi-date decision rather than artificial independent day steps.\n- [ ] Shared placements and earned-entitlement activation appear in their real order.\n- [ ] Accepted, rejected, pruned, not-examined, and ineligible branches retain their real reason; no unperformed comparison receives a vector.\n- [ ] One initial state plus ordered deltas can reconstruct the planner state through the traced phases.\n- [ ] The advanced annual-calendar view can navigate the traced phases and expand candidate evaluations.\n- [ ] Trace capture cannot change candidate order, completed phases, incumbent, or outcome.\n- [ ] Only the latest run’s trace is retained in memory and a new calculation discards the previous one.\n- [ ] Tests use the public planner and rendered annual-calendar seams and include joint obligations, at-risk placement, ordered preferences, shared placements, and an earned-entitlement chain.\n\n## Blocked by\n\n- #47 — Afficher l’explication stable d’un placement final", "discussion_locked": null, "downvotes": 0, "due_date": null, "has_tasks": false, "id": 320, "iid": 49, "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#49", "relative": "#49", "short": "#49" }, "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": "Tracer les obligations, le risque et les préférences du calcul original", "type": "ISSUE", "updated_at": "2026-10-03T13:17:28.233Z", "upvotes": 0, "user_notes_count": 2, "web_url": "https://gitlab.nessar.fr/nessar/vac-optimizer/-/work_items/49" }, "source_kind": "Issue", "source_path": "nessar/vac-optimizer", "source_project_id": 35, "source_reviewers": [], "source_updated_at": "2026-10-03T13:17:28.233Z", "state_events": [ { "close_after_error_tracking_resolve": false, "close_auto_resolve_prometheus_alert": false, "created_at": "2026-10-03T13:17:28.265021+00:00", "epic_id": null, "id": 621, "imported_from": 0, "issue_id": 320, "merge_request_id": null, "namespace_id": 38, "source_commit": null, "source_merge_request_id": null, "state": 2, "user_id": 8 } ], "target_number": 49 }