# IPZ Toggle lifecycle

- **ID:** IPZ-TOGGLE-LIFECYCLE-2026-08-15
- **Status:** IDLE
- **Task:** Delivery 5 Toggle lifecycle slice
- **Source request:** Implement the smallest complete lifecycle convergence for Toggle in international-press-zone, working directly from current `origin/master`, preserving the public API and behavior, verifying all named gates, committing locally, and not landing.

## Outcome and acceptance criteria

`Toggle` and `ToggleSwitch` preserve their exports, markup, DOM identity, accessibility, disabled/action behavior, and caller compatibility. Lifecycle methods are added only where a returned element owns listeners: idempotent `mount()`, `update(next)`, and `destroy()`. Focused tests prove compatibility, repeated lifecycle calls, cleanup/remount, keyboard accessibility, disabled behavior, action semantics, and no-op update identity. Inventory/report records and generated assets truthfully match source.

## Preserved WIP and constraints

- Worktree is clean at `origin/master` `ef459214b182bdd2996fb3730d0b887b0f4b960a`.
- Touch only Toggle, its focused tests, required generated inventory/report/build outputs, and this registry.
- Do not alter unrelated components/pages, delegate, invoke skills, use external models, or land.
- Read the Delivery 5 contract and landed lifecycle component sources/tests before implementation.

## Execution steps

1. Inspect the Toggle API, Delivery 5 lifecycle contract, landed reference components/tests, and inventory tooling.
2. Add the smallest lifecycle implementation and focused test coverage.
3. Regenerate required inventory/report/build outputs.
4. Run focused tests, full admin suite, lint, production build, inventory/gate, and the full dependency-ready factory gate.
5. Commit locally with a terse message and keep the work unlanded.

## Current receipt

The reported bundle was verified as a tracked orphan: it was absent from the manifest and all `admin/dist` references while the current runtime uses the active Toggle chunk. Only `admin/dist/js/689.5ce73648.js` was removed. Two consecutive local production builds completed successfully and left the stale filename absent. Inventory check and UI gate passed (`123` modules, zero direction violations, two baseline duplicate IDs; `3` changed files scoped, no new violations). The full local `COMPOSER_PROCESS_TIMEOUT=1200 bash tools/factory-gate.sh all` gate passed. The local-only repair is committed as `374e47605`; no landing has occurred.

## Next executable action

No worker is active. Retain the local commits for review or later landing; do not land them.
