# Native objective widget lifecycle `ERR_ObjectiveDetails.c` extends vanilla task details only while bound to this scenario's `erri-mission-` tasks. It refreshes open instructions when native display data changes. Before rebinding or detaching it removes that display subscription and cancels pending native `CheckOverflow` callbacks, whose assignee label widgets are about to be deleted. Assignment refreshes cancel earlier overflow work before replacing labels too. These native invokers are static on `SCR_Task` and survive entity deletion. Ownership is tracked separately from weak task references. On successor detail-widget detach, the production handler removes the five vanilla global task-event subscriptions (assignee added/removed, UI visibility, visibility and ownership), removes the task-entry visual-change route when present, and releases its task. The installed vanilla detach path handles the remaining widget and manager callbacks. Other task types continue through the native behavior; this is not a global task UI replacement. The WORKBENCH-only `ERR_NativeObjectiveProbe` runs with the existing explicit Core smoke opt-in. Its close/reopen check binds and rebinds an actual mission objective using the native layouts, emits unchanged state through the five native task event invokers, and checks one callback per event. It then removes the widget through its normal hierarchy lifecycle with no probe-only unsubscribe helper. A retained test handler records any late native task or overflow calls; such calls fail the fixture before they can dereference deleted widgets. This instrumentation does not repair subscriptions or cancel callbacks. After one normal 500ms smoke tick, exceeding the native overflow delay of 100ms, the fixture verifies no delayed callback reached the closed handler. It reopens native details and checks current title, instructions, task assignment and hidden map control. `BeginRound` clears static probe failure state once per smoke round; ordinary cleanup preserves failures. The added check consumes approximately one second including resuming the existing smoke sequence and stays within its unchanged 210-second deadline. This is a bounded local lifecycle regression. Rebinding uses the same current task; normal mission progression separately recreates the widget for each new objective. Unchanged-state event emissions are synthetic, and these checks do not establish remote client replication or manual UI acceptance. Native validation is recorded below. ## Short task-deletion regression The explicit Core smoke outcome `objective-ui` runs the normal close/reopen check and then creates its own `erri-mission-probe-teardown` native BaseTask. It assigns the local executor and initializes a hidden native details panel, causing native assignee overflow work to be scheduled. Vanilla allows one assigned task per executor, so this briefly moves the local assignment; the fixture restores the real mission objective immediately after deleting its isolated task and also during failure cleanup. The real task is never deleted. The fixture calls native `SCR_TaskSystem.DeleteTask` and asserts that both the fixture's task reference and the details handler's native task reference actually become null. It then closes the panel through production detach and waits 500ms for any leaked overflow callback. No fixture code clears those references before the assertion or cancels the overflow work. It verifies the real objective and its restored assignment again, then requests an explicit test reset at smoke step 902. This case adds two short asynchronous waits and avoids the radio/extraction sequence. The ownership flag in production keeps cancellation active after weak entity references disappear. Runner integration: add `objective-ui` to the existing `--smoke-outcome` choices and map it to the Core smoke world with `-errBaseSmoke 1 -errSmokeOutcome objective-ui`. Treat its terminal DEFEAT as a fixture-requested reset only when the dedicated step-902 completion assertion passes. Native compilation and execution of this additional case remain pending. The final [053124](evidence/native-2026-09-19-053124/report.json) fixture passes 30 assertions with no script/VM exceptions and verified launch/stopped-source/log hashes. It confirms actual task deletion clears weak references, detaches the panel, restores the real objective assignment and leaves no late callbacks after 500ms. The critical five invokers are static and are removed without requiring a surviving task entity. Seven inherited vanilla resource errors remain; manual and remote-client UI acceptance remain pending. Earlier failed callback and diagnostic iterations remain in the validation archive.