# Changelog All notable App changes are recorded here. ## 1.13.28 - Bundles the Sigstore-verified Codex runtime `0.167.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.27 - Bundles the Sigstore-verified Codex runtime `0.167.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.26 - Updates the browser worker's Chromium, Chromium common resources and ANGLE packages from Alpine `155.0.8059.84-r0` to `156.0.8078.79-r0`, with matching SHA-256 pins and startup attestation. Alpine no longer serves the 155 packages, so App images could not be built. The browser worker remains off unless `enable_browser` is turned on. - Raises the browser sandbox's thread limit from 128 to 256. Chromium 156 peaks just above 128 threads, which made PDF captures and the startup browser check fail intermittently, leaving browser tools unavailable after some restarts. - Updates the hash-locked runtime to pydantic-settings `2.16.2`. No feature or access option is enabled by this update. - Bundles the Sigstore-verified Codex runtime `0.166.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.25 - Pairs with Integration and panel 1.13.25, which require Home Assistant 2026.9.0 or later. Update Home Assistant Core before installing the Integration. - Retries Integration setup automatically when the App answers but a later setup step fails, for example while the App is still finishing startup. Previously the entry stopped in a setup error until it was reloaded. As before, setup also retries while the App is unreachable. - Starts Home Assistant's reauthentication flow when the App or an external Bridge rejects the Integration's token. Open the repair named after the entry, such as "Authentication expired for Codex Bridge", or select **Reconfigure** on the highlighted card in **Settings > Devices & services**: an App connection reconnects after the App restarts, and an external Bridge accepts a new token. An App connection notices a rejected token while it runs; an external Bridge's token is checked only when Home Assistant starts or reloads Codex Bridge. - Keeps live updates retrying after App errors that used to stop them until the Integration was reloaded: protocol errors, App errors marked as not retryable and unexpected failures. These retries start after 1 minute and back off to at most 10 minutes, and the log records one info-level message when updates stop and one when they recover. An unreachable App is still retried at most 30 seconds apart, as before. - Adds redacted diagnostics to the Codex Bridge integration entry. - Raises a Repairs issue for each saved account that needs a fresh sign-in. It closes on the next reading that reports the account as signed in, or when the account is removed. - Adds **Reconfigure** for an external Bridge to change its address or token. On an App connection it explains that restarting the App reconnects it. - Shows each saved account as its own device under the Codex Bridge connection device, which is shown under the App's device. - Registers task actions when the Integration loads and checks their data before contacting the App. Problems the caller can correct, such as an unknown or busy project or chat, a reused task ID, an unavailable model or data the App rejects, remain validation errors. App outages, a rejected connection token, a required Codex sign-in, a full Codex queue or task history and unexpected Bridge failures are now action errors. All have translated messages, and while the connection is not loaded the actions fail with a validation error that says so. - Compatibility changes to check in automations, scripts and dashboards: - Entity IDs and unique IDs are unchanged, but saved-account sensors take their friendly names from the account device. For example, "Codex Bridge Work weekly usage" becomes "Work Weekly usage". - Saved-account sensors move to their account's device, which starts without an area. A sensor without an area of its own no longer takes the connection device's area, so check area-based cards and templates such as `area_entities()`, `device_entities()` and `device_id()`, or assign an area to the account device. When the App's complete account list no longer includes an account, its device is removed with its sensors. - The Assist agent's name now follows the connection device. With the default entry title it remains "Codex Bridge Assist". - Sensors the App answers without a value report `unknown` instead of `unavailable`: the last task outcome, usage and reset sensors, and saved-account values that are stale, signed out or unreported. `unavailable` now means the App cannot answer. - The last task outcome sensor is now an enum sensor, so dashboards show translated state names such as "Completed". Its state values are unchanged. - The saved-account allowance status sensor is an enum sensor with the states `available`, `stale`, `usage_unavailable` (previously `unavailable`) and `reauthentication_required`, and the `telemetry_status` attribute of every saved-account sensor uses the same values. During an App outage the status sensor is unavailable, so Home Assistant hides its attributes, including `telemetry_status`, `last_updated` and `data_age_seconds`, until the App answers. The `source_available` attribute has been removed from every saved-account sensor. - Task actions reject project or chat IDs containing characters other than letters, digits, underscores and hyphens, blank titles, prompts and overrides, and prompts over 65,536 bytes. - Downgrading to Integration 1.13.12 leaves the saved-account devices in place without entities. Reinstalling 1.13.25 reuses them. - Bundles the Sigstore-verified Codex runtime `0.166.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.24 - Bundles the Sigstore-verified Codex runtime `0.166.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.23 - Bundles the Sigstore-verified Codex runtime `0.165.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.22 - Updates the hash-locked runtime to FastAPI `0.162.0` and pydantic-settings `2.16.1`. Retains python-dateutil `2.9.0.post0` for Home Assistant test compatibility and covers existing recurrence and clock-change behaviour with regression tests. - Retains the complete hash-locked build toolchain with setuptools `84.2.1` and updates the matching Home Assistant test fixture. No feature or access option is enabled by this update. - Bundles the Sigstore-verified Codex runtime `0.164.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.21 - Updates the hash-locked App runtime dependency OpenTelemetry API to `1.45.1` to address its reported security vulnerability. - Updates the frontend test dependency undici to `7.30.1`; installed panel assets and Integration compatibility are unchanged. - Bundles the Sigstore-verified Codex runtime `0.164.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.20 - Repairs App publication after the Chromium packages pinned by 1.13.19 were removed from the upstream package repository. Uses matching checksum-pinned Chromium, shared resources and ANGLE `155.0.8059.84-r0` packages with the same signature and startup version checks. - Includes the previously source-only Python dependency updates to FastAPI `0.143.3`, pydantic-settings `2.16.0` and aiohttp `3.14.4`. Browser tools retain their default-disabled setting and existing isolation requirements. - Bundles the Sigstore-verified Codex runtime `0.164.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.19 - Bundles the Sigstore-verified Codex runtime `0.164.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.18 - Restores confined startup on the current Home Assistant base image by using the native S6 user-bundle layout. - Preserves service ordering and AppArmor restrictions, existing chats, workspaces and sign-in. - Pins the matching Chromium ANGLE package so rebuilds retain the existing verified browser version. - Keeps Bridge `0.20.1` and verified Codex `0.163.0`. ## 1.13.17 - Bundles the Sigstore-verified Codex runtime `0.163.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.16 - Bundles the Sigstore-verified Codex runtime `0.162.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.15 - Bundles the Sigstore-verified Codex runtime `0.162.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.14 - Bundles the Sigstore-verified Codex runtime `0.161.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.13 - Bundles the Sigstore-verified Codex runtime `0.160.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.12 - Pairs with Integration and panel 1.13.12 to display Codex question forms in normal attended chats, with choices and a custom written answer. - Shows optional questions without stealing composer focus; unanswered optional requests expire after at most one minute so Codex can continue without a fabricated answer. - Keeps Plan questions blocking and unattended/Assist interactions disabled; answers remain bound to the live native turn and expire on completion, cancellation or restart. - Bundles the Sigstore-verified Codex runtime `0.160.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.1` without changing its Integration API compatibility. ## 1.13.11 - Pairs with Integration and panel 1.13.11 to preserve long chat replies instead of cutting message text at 4,096 characters. - Keeps large fenced code blocks whole for display and exact copying, including after reload; bounded streaming retains much longer replies. - Batches small live text chunks for responsive long-code display, with immediate completion updates. - Replays the complete retained reply when older Integration versions had shortened its display. - Bundles the Sigstore-verified Codex runtime `0.160.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.10 - Updates the hash-locked FastAPI runtime to 0.142.2. - Bundles the Sigstore-verified Codex runtime `0.160.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.9 - Bundles the Sigstore-verified Codex runtime `0.160.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.8 - Bundles the Sigstore-verified Codex runtime `0.159.3`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.7 - Repairs App publication after an optional GitHub build-cache export prevented the 1.13.6 image from being signed and made available to Home Assistant. - Keeps image signing, provenance, SBOM verification and immutable release tags. - Bundles the Sigstore-verified Codex runtime `0.159.2`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.6 - Bundles the Sigstore-verified Codex runtime `0.159.2`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.5 - Bundles the Sigstore-verified Codex runtime `0.158.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.4 - Adds a single switch for each installed Home Assistant MCP connection. Turning it on keeps any existing tool choices, or selects the tools shown now if none were chosen. Those tools can run without another approval prompt. Turning the switch off pauses the connection. Newly advertised tools stay blocked. - Keeps **Choose allowed tools** for people who want a smaller tool set, and explains the connection and device-control permissions in plain language. - Bundles the Sigstore-verified Codex runtime `0.157.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.3 - Lets administrators allow all currently shown MCP tools in one step or open the individual tool list to choose specific tools. New tools stay blocked until separately approved. - Bundles the Sigstore-verified Codex runtime `0.157.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.20.0` without changing its Integration API compatibility. ## 1.13.2 - Gives every Settings tab roomier cards and buttons, with mobile-friendly action rows. - Makes connection, access and instruction guidance easier to read. MCP status text distinguishes saved settings from a ready connection and explains where keys live. - Pairs App, Integration and panel `1.13.2` with unchanged Bridge `0.20.0` and Codex `0.157.1`. ## 1.13.1 - Keeps the composer to one toolbar, with secondary settings and context tools in anchored menus. Goal, Find and repository review open on demand. - Groups message copy, attributed quotes and exact maths sources in one menu. - Adds an accessible draggable top edge to resize File preview and Terminal, preserving visit height and respecting the visible viewport. - Preserves Assistant Chats below Projects and collapsed by default. - Pairs App, Integration and panel `1.13.1` with unchanged Bridge `0.20.0` and Codex `0.157.1`. ## 1.13.0 - Adds message copy and attributed quotes, opt-in local draft recovery, retained conversation search, readable code blocks and safe mathematical notation. - Adds inspectable workspace and previous-chat context, repository status and an attention inbox. Changed source context requires explicit review and refresh. - Adds deliberate-turn goals, reported run usage and optional elapsed-time limits, plus reviewed per-turn web-search choices. Usage is telemetry, not billing; token hard caps are unsupported. - Shows verified individual subagent status and targeted stopping. Direct follow-up to v2 children remains unavailable with the pinned runtime. - Adds saved-account allowance/reset diagnostics and aligns new controls with the existing panel design. Automatic chat selection chooses an ordinary chat or a usable empty state; Assistant Chats remain last and collapsed by default. - Pairs App, Integration and panel `1.13.0` with Bridge `0.20.0` and unchanged Codex `0.157.1`. ## 1.12.0 - Keeps HA Assistant Chats at the bottom of the sidebar, below Projects, collapsed by default with an accessible expand control. - Connects an already installed community HA-MCP App from Settings after administrator consent, with its identity and non-secret destination displayed. Discovers the existing private path server-side and uses the current private registry and local relay; new connections allow no tools. - Reuses an exact approved connection with its pause state and tool selection preserved. Changed destinations or paths require explicit removal and reconnect. Assist selection and each chat's MCP enablement remain separate controls. - Blocks new work and connection retries until App restart if runtime reload fails after a saved connection; retains private configuration for recovery. - Pairs App, Integration and panel `1.12.0` with Bridge `0.19.0` and unchanged Codex `0.157.1`; the private quick-connect API is capability-gated. ## 1.11.1 - Projects native queued-message edits and removals into the transcript and conversation rail, including retained history after an App restart or page reload. Matches the recorded queue ownership and preserves unrelated turns and answers. - Labels queued work as messages rather than claiming it steered the active turn. - Pairs App, Integration and panel `1.11.1` with unchanged Bridge `0.18.0` and Codex `0.157.1`. ## 1.11.0 - Applies accepted settings when resuming an idle Codex conversation, including Plan-to-Implement changes, by confirming cold resume before strict policy checks. - Displays native Plan text while it streams and retains acknowledged Plans as readable Markdown responses and conversation-rail previews. - Applies queued draft edits and removals to the correct transcript message, preserving reading position and the original live turn when a draft is cancelled. - Preserves undispatched queued prompts during shutdown and re-admits them after account verification. Unverified ownership or prior dispatch prevents replay; retained history is preserved for manual recovery. - Displays pending Plan questions and sends opted-in question notices when the public API omits its default pending-status field. Explicit resolved states remain rejected. - Lets administrators select the MCP servers Assist can use independently from ordinary chats, including native Home Assistant and compatible custom servers. - Adds an explicit native HA MCP authorisation shortcut with deny-all initial tools, private token renewal and revocation before remote discovery or cleanup. - Keeps Assist in a private read-only runtime profile, with immutable accepted permissions and fail-closed native teardown. - Adds opt-in question notices and verified administrator Companion replies. Replies answer existing questions and cannot approve execution or access; pre-dispatch failures release their claim, while uncertain dispatch stays sealed. - Moves HA Assistant Chats below Projects and Archived, initially collapsed, retaining manual expansion and temporary search expansion. - Pairs App, Integration and panel `1.11.0` with Bridge `0.18.0` and unchanged Codex `0.157.1`. Physical notification replies and native home control require separate target acceptance. ## 1.10.1 - Restores native Plan availability by negotiating its capability after the runtime runner is constructed. Unsupported runtimes still refuse Plan. - Preserves safe Git review errors through Home Assistant, including the refresh guidance when the repository changes while a diff is opening. - Pairs App, Integration and panel `1.10.1` with Bridge `0.17.1` and unchanged Codex `0.157.1`. ## 1.10.0 - Renders assistant Markdown safely, including headings, lists, tables and exact fenced-code copying; user messages remain plain text. - Adds administrator-only transcript search, matching excerpts, archived-chat inclusion and retained-message jumps. The bounded index survives activity compaction, reports incomplete coverage and follows queue edits and deletion. - Adds explicit Queue/Steer choices, revision-checked queue editing and removal, durable request identity and recovery of safely unclaimed explicit queues. - Uses native Plan with read-only execution, blocking clarification and review. Plan cannot grant write, command-expansion or Host Access authority; deliberate implementation restores the saved execution policy, workspace and model. - Adds real per-file Git review for unstaged, staged, commit and branch scopes, using confined private metadata, raw bytes and bounded lazy patches. Git is included in the App. Binary, oversized and unsupported states are labelled. - Pairs App, Integration and panel `1.10.0` with Bridge `0.17.0` and unchanged Codex `0.157.1`. New controls use negotiated capabilities; existing clients retain omitted-field behaviour and unsupported explicit requests are refused. ## 1.9.2 - Attaches the existing Assist conversation entity to the Codex Bridge device, with model, reasoning level and plain-text instructions in Integration settings. Live catalogue validation preserves accepted retries and rejects unavailable choices without creating an empty chat. - Displays a prominent red notice above Assist chat history explaining that messages must continue through Home Assistant Assist or an ordinary new chat. - Reversibly hides unused five-hour diagnostics for a verified weekly-only allowance, retaining entity identity and manual visibility choices. Account changes immediately invalidate the previous account's usage values. - Uses Home Assistant's authenticated HTTP requests for file uploads, image reads and downloads so an expired access token does not require a page reload. - Pairs App, Integration and panel `1.9.2` with Bridge `0.16.1` and unchanged Codex `0.157.1`. ## 1.9.1 - Allows image-menu downloads to save the original bounded file when its content preview cannot be decoded, with a clear notice if retrieval fails. - Preserves authenticated Home Assistant downloads, chat confinement, preview bounds, cached-image downloads, keyboard/touch actions and thread cleanup. - Pairs App, Integration and panel `1.9.1` with unchanged Bridge `0.16.0` and Codex `0.157.1`. ## 1.9.0 - Replaces the turn-button panel with a slim conversation rail on desktop and mobile. Content-sized markers follow scrolling; stable animated previews, keyboard navigation and browser-local bookmarks make long chats easier to navigate. - Displays uploaded and generated raster images in chat, with an enlarged preview, image actions, Copy image and Download. Copy requires the browser's secure clipboard support; denied permission displays a useful fallback. - Adds administrator-only attachment reads through Home Assistant, confined to verified chat-owned upload snapshots. Raster previews validate type, size, dimensions and decoding, with bounded loading and private blob lifetimes. - Preserves chat history, workspace access, account settings and Assist policy. - Pairs App, Integration and panel `1.9.0` with Bridge `0.16.0` and unchanged Codex `0.157.1`. ## 1.8.11 - Groups Home Assistant Assist conversations in a separate **HA Assistant Chats** sidebar folder, including their archived conversations, without moving files or changing project membership, history or permissions. - Keeps normal project chats, search, collapse controls and chat actions available; Assist chats appear once even when they retain pin or custom-section metadata. - Preserves project actions for Assist-only projects inside the new folder, including restore and delete controls for archived projects. - Includes the preview, terminal feedback, menu and Assist composer repairs in 1.8.10. - Pairs App, Integration and panel `1.8.11` with unchanged Bridge `0.15.0` and Codex `0.157.1`. ## 1.8.10 - Keeps chat action button names, tooltips and expanded state in sync after a sidebar refresh or menu closure. - Gives the file preview more height while preserving the composer and a usable chat area; aligns its outlined toolbar icons and wraps actions without clipping. - Keeps the expanded compact conversation picker below alerts in short chat areas. - Explains that Assist-managed conversations continue through Assist, instead of offering an ordinary Send action that the backend rejects. Preserves drafts and genuine uncertain-delivery retries without changing the Assist safety policy. - Retains the steady hover controls and visible terminal explanations from 1.8.9. - Pairs App, Integration and panel `1.8.10` with unchanged Bridge `0.15.0` and Codex `0.157.1`. ## 1.8.9 - Keeps chat menu items and submenu hover targets mounted during unrelated live updates, avoiding repeated hover transitions and animation restarts. - Refreshes usage details without replacing the model and thinking controls. - Shows why the workspace terminal is unavailable, including read-only Observe mode, with an accessible visible explanation. No chat permission changes. - Pairs App, Integration and panel `1.8.9` with unchanged Bridge `0.15.0` and the verified Codex runtime `0.157.1`. ## 1.8.8 - Preserves definite chat-navigation and section revision conflicts through Home Assistant, so stale updates request a refresh without being treated as an uncertain operation. Unknown errors still use sanitised generic responses. - Pairs App, Integration and panel `1.8.8` with Bridge `0.15.0` and the unchanged verified Codex runtime `0.157.1`. ## 1.8.7 - Adds one chat actions menu for right-click, sidebar and header controls, with persistent pin/read markers and named sections, authenticated sharing and conversation copies. Existing rename, archive and deletion controls remain. - Adds same-account native forks sharing the current workspace and bounded moves into an existing project with copies of chat-owned files and a review for selecting shared project files. Failed copy cleanup retains its storage accounting. Pending native outcomes remain unverified until inspected; definitive rejection leaves other chat actions available. Active work, scheduled references, uncertain identity and unsafe files prevent a move. - Adds a conversation tick rail with animated hover previews and keyboard jumps; phones and touch tablets use a compact Jump to message disclosure. - Refreshes Scheduled definitions when reading run history while preserving an open edit draft, so completed tasks show their current status and controls. - Bundles the Sigstore-verified Codex runtime `0.157.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.15.0` without changing its Integration API compatibility. ## 1.8.6 - Adds reviewed title and instruction descriptions for a selected scheduled task. Saving changes only that field and retains timing, target, permissions and other saved settings. - Preserves pending scheduled occurrences when updating unrelated fields, including overdue one-off and recurring tasks. - Requires refresh and another review after conflicts or uncertain save responses. Late replies preserve newer drafts, and keyboard focus follows edit transitions. - Keeps desktop scheduled-run status words intact at narrower panel widths. - Pairs App, Integration and panel `1.8.6` with Bridge `0.14.4` and the unchanged verified Codex runtime `0.157.1`. Conversational timing, pause and cancellation remain open in TASK-01. ## 1.8.5 - Explains scheduled run outcomes, including overlap and missed-window skips, with fixed safe text rather than raw provider errors or private identifiers. - Shows due, start and completion times in Home Assistant's configured time zone, including daylight-saving labels and an explicit UTC fallback. - Reconnects the Integration's event consumer when an App connection closes during a response body, retaining its cursor and duplicate-event protection. - Preserves scheduler behaviour and existing grants. This TASK-01 history improvement leaves conversational editing, pause and cancellation open. - Pairs App, Integration and panel `1.8.5` with unchanged Bridge `0.14.3` and verified Codex runtime `0.157.1`. ## 1.8.4 - Bundles the Sigstore-verified Codex runtime `0.157.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.14.3` without changing its Integration API compatibility. ## 1.8.3 - Lets authorised Home Assistant task actions recover App capabilities after an upgrade without opening the Bridge panel. Older Apps remain capability-gated. - Preserves cancellation when an aborted startup, deadline or runtime restart races the cancel handler. Real provider completion and failure are retained. - Preserves reviewed stdio package bytes in Windows checkouts so immutable package verification and App staging use the same source on every platform. - Pairs App, Integration and panel `1.8.3` with Bridge `0.14.3` and verified Codex runtime `0.157.0`. ## 1.8.2 - Fixes isolated stdio worker startup when the Bridge loads its fixed launcher as a module. The worker-admission helper is now loaded from its verified, root-owned path, so approved packages can be discovered and called. - Pairs App, Integration and panel `1.8.2` with Bridge `0.14.2` and the unchanged verified Codex runtime `0.157.0`. ## 1.8.1 - Fixes readiness validation when isolated stdio MCP is enabled. The Bridge now advertises its verified stdio capability without rejecting its own response. - Pairs App, Integration and panel `1.8.1` with Bridge `0.14.1` and the unchanged verified Codex runtime `0.157.0`. ## 1.8.0 - Adds opt-in isolated stdio MCP support on amd64 Home Assistant OS. The first approved package is Bridge Time 1.0.0, a local Python time and timezone server with no network or workspace access. - Shows the package source, fixed command, verified files and access limits before an administrator creates a paused connection. Tool selection, pause/resume, diagnostics, update, rollback and removal use the existing MCP management controls. - Runs stdio servers in a separately attested AppArmor and Bubblewrap worker. A private Bridge adapter handles MCP messages; Codex never launches the package directly or passes its sign-in or Supervisor credentials to it. Installation and upgrades do not activate a worker or grant tools. - Pairs App, Integration and panel `1.8.0` with Bridge `0.14.0` and the unchanged verified Codex runtime `0.157.0`. ## 1.7.3 - Stops Assist conversations being selected for scheduled tasks. The editor explains the restriction, while the Bridge rejects invalid targets when a schedule is saved or dispatched. - Adds a browser-safe scheduling eligibility field to public chat records. The Integration keeps the private Assist origin marker out of panel responses. - Retains Codex `0.157.0` and Bridge `0.13.0` from 1.7.2. ## 1.7.2 - Adds the capability-gated Assist answer endpoint, returning direct answers from an administrator-selected project while keeping Assist observe-only. - Keeps mobile drawers below the phone's status area and clears touch tooltips after actions. - Adds opt-in scheduled-task notifications through Home Assistant. Persistent notices are generic because all HA users can see them; selected Companion App phones can receive a task title and an optional short answer preview. - Refreshes Supervisor App options on every container start so an option change cannot be hidden by Bashio's previous cache. - Retains Codex `0.157.0` and Bridge `0.13.0` from the 1.7.1 App image. ## 1.7.1 - Bundles the Sigstore-verified Codex runtime `0.157.0`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.13.0` without changing its Integration API compatibility. ## 1.7.0 - Adds private ChatGPT account profiles in the Home Assistant App. Switching checks the selected identity, rolls back a failed switch and restarts only the App-managed Codex process; desktop sign-ins remain separate. - Shows each saved account's plan, usage and reset details in a compact menu that accommodates five or more profiles. The App refreshes inactive accounts in the background and labels last-verified figures when a refresh fails. - Restores sent chat messages and presents generated files as downloadable cards with recognisable, original file-type icons. Authenticated, bounded text previews cover DOCX, XLSX and PPTX alongside existing previews. - Centres Skills, Settings and Plugins content, improves search and New chat focus states, and repairs chat controls across desktop and narrow screens. - Pairs App, Integration and panel `1.7.0` with Bridge `0.13.0` and the unchanged Sigstore-verified Codex runtime `0.156.1`. Stable App images remain amd64-only; upgrading does not enable MCP or host access. ## 1.6.4 - Adds eight privacy-conscious Home Assistant status and usage entities for dashboards and automations. - Supports attended MCP forms and one-time authorisation links in the active chat. Unattended runs continue to decline interactive requests. - Lets administrators inspect an MCP server's tools and save a per-server allow-list. New connections start with no allowed tools; existing connections keep their previous access until an administrator saves a selection. - Fills the available chat height below the Home Assistant header and adapts the phone layout. The composer Add menu groups supported file, folder, scheduling and Plugins actions, and keeps keyboard focus after selection. - Centres feature loading, softens project action menus and simplifies the header artwork. - Pairs App, Integration and panel `1.6.4` with Bridge `0.13.0` and the unchanged Sigstore-verified Codex runtime `0.156.1`. Stable App images remain amd64-only; upgrading does not enable an MCP server or host-access grant. ## 1.6.3 - Keeps activity details steady when their chip text updates under the pointer. Sidebar and menu tooltips now fit the viewport without native duplicates. - Keeps the Create chat action reachable when the navigation rail is short. - Pairs App, Integration and panel `1.6.3` with Bridge `0.13.0` and Codex `0.156.1`. Stable App images remain amd64-only. ## 1.6.2 - Keeps activity popovers, navigation controls and usage cards steady through Home Assistant and Bridge refreshes. Live run details update without closing a hovered popover or resetting an open command preview. - Pairs App, Integration and panel `1.6.2` with Bridge `0.13.0` and Codex `0.156.1`. Stable App images remain amd64-only. ## 1.6.1 - Gives panel errors a compact, consistent presentation with readable actions across light and dark themes. Filled buttons keep their text contrast on hover, and unchanged notices are no longer repeatedly announced to screen readers. - Pairs App, Integration and panel `1.6.1` with Bridge `0.13.0` and Codex `0.156.1`. Stable App images remain amd64-only. ## 1.6.0 - Lets an administrator describe a scheduled task in chat, review the proposed timing and destination, then save it through Home Assistant's existing scheduler. Ambiguous times require clarification and a proposal cannot run before saving. - Shows reported Codex usage reset credits and expiry dates. Redemption requires a separate confirmation and retries reuse the same attempt identifier. - Adds an exhausted-usage shortcut, message times and a single elapsed-working indicator with reduced-motion support. - Pairs App, Integration and panel `1.6.0` with Bridge `0.13.0` and the Sigstore-verified Codex runtime `0.156.1`. Stable App images remain amd64-only. ## 1.5.1 - Bundles the Sigstore-verified Codex runtime `0.156.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.12.0` without changing its Integration API compatibility. ## 1.5.0 - Gives user messages black bubbles with white text in both themes. Copy remains on fenced code blocks, preserving indentation and line breaks. - Shows one working/completion indicator, with live Thinking/tool activity, changed-file totals and completed image-view counts. - Adds expandable command previews to administrator chat activity. Commands matching recognised credential patterns are omitted before storage. This is a best-effort filter: unrecognised secrets could remain in saved activity. Output, environment values and image paths are not added to activity events. - Makes both desktop side columns 15% narrower and gives the transcript more space. Mobile drawer dimensions are unchanged. - Pairs App, Integration and panel 1.5.0 with Bridge 0.12.0 and the unchanged verified Codex 0.155.1 runtime. Stable App images remain amd64-only. ## 1.4.0 - Adds Pause, Resume and Edit connection to MCP settings. Paused servers retain their private configuration and stay blocked in existing and new chats after restart. Changes wait until no work is running or queued. - Requires a deliberate authentication choice when editing a destination. Failed saves restore the previous settings; uncertain recovery blocks new work and asks for an App restart. Saved secrets are never filled into forms. - Keeps connection controls available when runtime status discovery fails and shows a refresh action instead of treating missing counts as a healthy server. - Simplifies the chat transcript: removes user and assistant avatars and the repeated Assistant heading, and moves Copy below each response. Prose uses the panel's text colour with a transparent background in light and dark themes. - Shows one run-completion indicator while keeping run details available. - Pairs App, Integration and panel 1.4.0 with Bridge 0.11.0 and the unchanged, verified Codex 0.155.1 runtime. Stable App images remain amd64-only. ## 1.3.1 - Prepares ARM64 development images with verified runtime binaries, matching Python packages and architecture-aware startup checks. - Adds separate amd64 and ARM64 build verification. Published App images remain amd64-only: native ARM64 Home Assistant OS testing is still required. - Keeps interactive browser tools unavailable in ARM64 development images and leaves the optional Host Access App amd64-only. - Documents the remaining hardware and sandbox checks for issue #111. This release does not enable installation on Raspberry Pi, Green or Yellow. - Pairs App, Integration and panel 1.3.1 with Bridge 0.10.0 and Codex 0.155.1. Existing amd64 features and default permissions are unchanged. ## 1.3.0 - Adds bearer-token and API-key header authentication to guided HA-MCP setup and custom MCP connections. Update both the App and HACS Integration to use it. - Adds masked credential entry, replacement and removal. Saved values cannot be viewed; removing a credential blocks the connection, including after restart. - Keeps credentials in the App's private relay storage and out of native Codex configuration. Public authenticated connections pin approved HTTPS addresses; local connections retain their separate enablement and acknowledgement. - Explains that HTTP sends credentials unencrypted and App backups include the private plaintext credential store. Provider token revocation remains separate. - Preserves public OAuth, existing local connections and older-App compatibility. - Pairs App, Integration and panel 1.3.0 with Bridge 0.10.0 and Codex 0.155.1. MCP remains off by default. Local OAuth, stdio and interactive MCP questions remain outside this release. ## 1.2.0 - Adds optional local HTTP/HTTPS MCP connections for HA-MCP and other servers on the LAN or Home Assistant App network. Both MCP options remain off by default. - Adds an endpoint warning and acknowledgement to guided HA-MCP and custom-server setup. HTTP is unencrypted; HTTPS certificates must validate normally. - Routes local requests through a private relay, pins approved private addresses and rejects redirects, public destinations, loopback and Supervisor access. - Keeps private local URL paths out of the server list and native MCP diagnostics. - Removes local connections after disabling the option and restarting, while preserving valid public HTTPS/OAuth connections. - Fixes startup handling of saved MCP settings: servers stay disabled until validated, including after a restart or when MCP is switched off. - Pairs App, Integration and panel 1.2.0 with Bridge 0.9.0 and Codex 0.155.1. Local bearer tokens, OAuth, custom headers and stdio remain planned features. ## 1.1.2 - Adds an administrator-operated workspace terminal with real interactive input, bounded output and automatic session cleanup. It cannot access sibling chats, private Home Assistant files or the network, even in a host-access chat. - Adds desktop-style chat actions, authenticated Share links, panel toggles and a sidebar listing the chat's pull requests, outputs and sources. - Puts Stop and Steer beside the composer and adds a context-usage ring based on the runtime's latest report, including reductions after compaction. - Adds guided HA-MCP setup alongside the existing custom MCP connection form. - Adds a visible Access settings page with host-control warnings and update guidance for older connections. Host access still needs explicit consent. - Preserves connection drafts when retrying a failed Settings refresh. - Gives action buttons consistent spacing and touch targets across settings, sign-in, skills, plugins and permission dialogs. - Aligns typography, navigation icons and composer controls with the desktop Codex style while retaining theme and larger-text preferences. - Explains HACS update discovery delays and the legacy HACS update-icon workaround. - Pairs with Integration and panel 1.1.2; the App's access permissions are unchanged. - Bundles the Sigstore-verified Codex runtime `0.155.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.8.1` without changing its Integration API compatibility. ## 1.1.1 - Updates Uvicorn to `0.53.0` and repairs the locked build dependencies so the App builds with the required setuptools backend. - Bundles the Sigstore-verified Codex runtime `0.155.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.8.0` without changing its Integration API compatibility. ## 1.1.0 - Adds the optional Codex Host Access App for explicitly authorised root work on Home Assistant OS. The normal Bridge App keeps its existing permissions. - Shows the complete access warning before enablement. A ready companion goes straight to acknowledgement; missing or unavailable Apps get setup guidance. - Lets administrators select host access for individual chats and schedules, revoke it, and review the additional unattended warning for scheduled work. - Invalidates saved host selections after revocation or an environment change. - Recommends the optional HA-MCP server for Home Assistant tasks, with setup links in Settings and installation guidance explaining connection requirements. - Bundles the Sigstore-verified Codex runtime `0.155.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.8.0` without changing its Integration API compatibility. ## 1.0.6 - Adds optional browser tools for public websites: navigation, page inspection, clicks, text and selections, screenshots and printed PDFs. - Requires explicit App enablement and startup checks of Chromium's sandbox, filesystem isolation and enforced network policy. Existing chats keep their current tools; start a new chat after enabling the feature. - Discards browser profiles at the end of a turn or cancellation. Browser tools cannot access Home Assistant, local devices, saved logins or workspace files. - Pins the Chromium package by checksum and retains the private HA artifact route. - Includes the signed Codex code-mode companion needed to execute dynamic tools. - Adds saved panel appearance and new-chat defaults, including automatic work within the selected workspace and enabled tools. - Replaces Scheduled's model and reasoning text fields with runtime selections, improves dropdown menus and groups Skills into labelled containers. - Bundles the Sigstore-verified Codex runtime `0.155.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.9` without changing its Integration API compatibility. ## 1.0.5 - Replaces the technical Scheduled form with title, task instructions, Details and Frequency cards. Supports new or current chats, familiar repeat choices and a preview in Home Assistant's time zone. - Keeps saved schedule timing and permissions when editing existing tasks. - Keeps dropdowns mounted during background updates and stops Enter in a dropdown from submitting the form. - Updates setup, usage and troubleshooting instructions to match the current App and panel, including separate HACS and App updates. - Bundles the Sigstore-verified Codex runtime `0.155.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.8` without changing its Integration API compatibility. ## 1.0.4 - Updates the paired Integration and panel to `1.0.4`, preserving keyboard focus and pointer hover on feature-page controls during unrelated Home Assistant updates. - Avoids rebuilding populated plugin catalogues until their displayed data changes. - Keeps action handlers and Settings capability availability current when their inputs change. - Bundles the Sigstore-verified Codex runtime `0.155.1`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.8` without changing its Integration API compatibility. ## 1.0.3 - Accommodates the growing, unpaginated plugin catalogue within bounded runtime and Integration response limits, fixing the Plugins unavailable error and retaining every plugin in the current catalogue. - Declines optional background questions without blocking the compatible panel or suspending idle timeouts; blocking questions continue to request an answer. - Bundles the Sigstore-verified Codex runtime `0.155.1`. - Makes GPT-6 Astra available in the model picker when the signed-in account's runtime catalogue advertises it; the previous client version omitted Astra. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.8` without changing its Integration API compatibility. - Updates Integration and panel to `1.0.3`, preserving sidebar hover and keyboard focus during Home Assistant background refreshes. - Reports a blocked automatic runtime update as a failed workflow when updater credentials are missing, rather than silently skipping the pull request. ## 1.0.2 - Keep the account status and sign-in controls consistent when a Codex run reports expired authentication, and keep the sign-in warning fully visible above the conversation on desktop and mobile. - Preserve rejected authentication through restarts until sign-in or a validated credential refresh succeeds. Keep connection-error retry controls visible above long conversations. - Prevents a second cancellation of the same Codex app-server generation while its process is shutting down. Failed generations remain marked until cleanup completes, including after protocol errors. - Updates the paired Integration and panel to `1.0.2`, refreshes the tested dependencies and Home Assistant image builder, and pins Chromium `152.0.7977.82-r0`. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.7` without changing its Integration API compatibility. ## 1.0.1 - Repairs App startup after a Home Assistant cold restore by reconciling restored App-owned Bridge, Codex-home, workspace, and token ownership before the service drops privileges, while retaining descriptor-relative no-follow checks and fixed private modes. - Refreshes the exact Alpine Chromium package to `151.0.7922.173-r0` so the reproducible `amd64` App image remains buildable. The browser capability remains disabled pending its separate isolation and egress proof. - Keeps full target cold-restore and retained-image recovery acceptance as separate operator evidence rather than inferring it from this repair. - Keeps the compatible Integration and panel at `1.0.0`; their version authorities remain independent because this App-only repair does not change the negotiated API or browser bundle. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.6` without changing its Integration API compatibility. ## 1.0.0 - Promotes the Supervisor App from Home Assistant's experimental lifecycle stage to stable while retaining the explicit `amd64` support boundary. - Enables the composer Send action immediately when a prompt is entered or pasted, removing the need for an unrelated refresh before clicking Send. - Adds an explicit, monotonic `--set-version X.Y.Z` release-sync path so major and minor App releases update every owned immutable-image projection without manual edits, with rollback if a later file replacement fails. - Carries forward the account-neutral Home Assistant chat contract accepted on target HAOS in `0.8.11`: local chats and history remain visible while the currently signed-in ChatGPT account starts fresh private provider continuity. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.6` without changing its Integration API compatibility. ## 0.8.11 - Keeps Home Assistant chats, projects, transcripts, files, workspace settings, archive state, and automation targets independent of the signed-in ChatGPT account. - Privately binds native Codex thread handles to their owning ChatGPT account; after an account change, the same Home Assistant chat starts a fresh provider thread instead of attempting to resume one owned by the previous account. - Detaches unowned pre-0.8.11 provider handles once during migration without deleting or partitioning local history. No account identity or binding marker is exposed through the panel, API, events, diagnostics, or logs. - Reconciles account-update hints through an authoritative account read under the runtime gate. Identity-less reads detach private provider continuity and keep UI and automation turns blocked until ownership is verifiable. - Publishes each account-change hint as `checking` and auth-required before the authoritative read begins, closing direct-prompt and automation admission before local mutation while deferring catalogue invalidation until the settled account result. - Fails closed if an App-server generation change needs account reconciliation while a turn owns the runtime gate, preventing the previous generation's ready status from admitting work before account ownership is reverified. - Discards an active device login when its App-server generation restarts, releases the obsolete auth lease outside the coordinator lock, and performs a fresh authoritative account read instead of leaving all turns blocked. - Returns the existing fail-closed auth snapshot while runtime ownership blocks reconciliation, preventing frequent Home Assistant status polls from generating duplicate revisions and durable `auth.status_changed` events. - Invalidates shared model and provider-capability catalogues when the private account owner changes even if both accounts report the same plan, so model and reasoning choices always reflect the account currently signed in. - Invalidates an account read or device-login poll if a newer account-update hint arrives before it finishes, so a stale account can never be published ready or rebound after the user switches accounts. - Rechecks account admission when each queued prompt becomes active. Prompts queued before an account switch stop locally without starting or resuming a provider thread, while the Home Assistant chat and its prompt remain visible. - Rechecks account admission inside the active-run branch before accepting an interactive follow-up, so an account-update hint raced against the request cannot persist or send a stale `turn/steer`. - Requires the authoritative auth state to be fully `ok` before broker admission or automation target preparation, so transient account checks and sign-out cannot leave behind local chat mutations. - Gives scheduled runs a one-shot broker admission before creating or changing their target chat, transfers that exact lease into prompt submission, and replays an existing automation outcome without creating or editing a chat. Logout and automation dispatch therefore have one atomic winner. - Reserves prompt ownership before the final account-admission check and provider-thread lookup, making account rebinding atomic with provider continuity selection and preventing a detached previous-account thread from being resumed by a newly accepted turn. Any admission or local run-state validation failure releases that reservation without accepting the prompt. - Runs authoritative account reconciliation outside the runtime broker lock, then repeats deletion and idempotency validation before acceptance, avoiding the storage-to-broker lock inversion with concurrent chat/project deletion. - Rebinds only provider/runtime metadata without resolving unchanged historical workspaces, attachments, or artifacts, so one old chat whose backing files were removed outside the Bridge cannot block a healthy account switch. - Settles recovered runtime checkpoints before account binding, preventing an interrupted run from restoring a previous account's provider thread during startup. - Keeps provider session/thread/turn handles, active runtime ownership, and queued prompt internals out of browser-facing thread responses while preserving the complete private record inside the App. - Addresses approvals and questions through an App-local interaction ID. The browser no longer receives provider run, turn, or item locators, and durable event replay redacts legacy provider-continuity fields at read time. - Advertises the safer interaction contract only from the HA-native profile, so a newer Integration fails locally and actionably when temporarily paired with an older App while the legacy external profile promises no absent route. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.6` without changing its Integration API compatibility. ## 0.8.10 - Coalesces adjacent Codex text deltas into ordered, bounded batches before the Bridge's durable callback work, so one high-rate long response no longer consumes one callback slot per text fragment and restarts after a short prefix. - Exercises the real App-server client and Runtime Broker callback path against a scripted peer with 5,000 distinct streamed words, exact completed-message reconstruction, one successful terminal event, and no generation change. - Keeps terminal notifications behind every accepted text batch and retains the existing fail-closed overload path for genuinely heterogeneous callback backlogs. - Shows a typed runtime restart as **Run interrupted**, preserves the partial response, and provides a safe explanation instead of mislabelling the event as a generic **Run failed** state. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.5` without changing its Integration API compatibility. ## 0.8.9 - Keeps a long streamed assistant response visible as **Partial response** when the provider stream fails, and shows a safe, specific failure category rather than collapsing the turn to three lines plus a generic **Run failed** state. - Classifies every failed-turn variant advertised by bundled Codex `0.144.5` without persisting provider messages, paths, HTTP details, or credentials. - Removes a stale usage-limit lock after a newer healthy snapshot and serializes competing limit refresh/failure writes so the account state cannot race. - Prevents the compact **Create chat** action from wrapping or clipping, quiets the refresh control, and removes native scrollbar arrow buttons from the chat rail. - Preserves completed and interrupted long-response payloads once delivered to the Runtime Broker. Rapid token-delta callback backpressure was not yet covered in this release and is corrected in `0.8.10`. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.4` without changing its Integration API compatibility. ## 0.8.8 - Shows the complete two-step download state on generic Files rows: authenticated outputs move from **Prepare download** through **Preparing...** to a synchronous **Save file** handoff, matching the generated-image and PDF controls. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.3` without changing its Integration API compatibility. ## 0.8.7 - Reuses a complete, authenticated artifact preview for the browser download handoff, keeping generated-image downloads inside the user's active click. - Retains each temporary download anchor and blob URL together for a bounded 60-second grace period before removing and revoking them. - Expires an unsaved prepared blob after 60 seconds and clears it immediately when the panel disconnects or its chat/file context changes. - Gives artifacts that were not safely cached in full an explicit two-stage **Prepare download** then **Save file** flow, so the final browser handoff is also synchronous without putting Home Assistant credentials in a URL. - Covers cached user-activation downloads, authenticated delayed downloads, filename and byte integrity, and bounded cleanup in unit and browser tests. - Bundles the Sigstore-verified Codex runtime `0.144.5` and Bridge `0.7.3`. ## 0.8.6 - Makes artifact downloads browser-safe by handing the fetched blob to an attached, hidden download anchor and revoking its object URL only after the browser has accepted the click. - Covers delayed multi-megabyte generated-image downloads, filename and byte integrity, failed-fetch behavior, anchor cleanup, and deferred URL cleanup. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.3` without changing its Integration API compatibility. ## 0.8.5 - Makes generated-image **Open preview** reliably reveal the authenticated Files preview, including when the image was already selected automatically. - Adds an inline browser Download action for generated images while retaining the existing Home Assistant-authenticated download path for every artifact. - Keeps the Home Assistant document fixed and constrains scrolling to the chat transcript at desktop and narrow widths, so the composer and workspace rails remain in place. - Describes image generation truthfully as Codex's provider-native ChatGPT capability and removes unsupported `$imagegen`/local-skill guidance. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.3` without changing its Integration API compatibility. ## 0.8.4 - Repairs the typed PDF **Files** `409` by keeping selected-workspace listing, archive, preview, and download independent of unrelated stale workspace-root debris while preserving fail-closed aggregate quota checks for mutations. - Removes only exact stale sandbox self-test locators during root-side startup, with descriptor-bound identity checks and ownership rollback on partial cleanup failure. - Adds ChatGPT-account image generation behind runtime-advertised `imageGeneration` and `namespaceTools` capabilities. Generated PNG, JPEG, and WebP output is strictly validated, revocation-leased, and stored only as a private Home Assistant artifact; no API key or browser/provider route is introduced. - Adds a provider-neutral LAN, Nabu-shaped, and Cloudflare-shaped transport harness plus redacted offline evidence collectors for external-route and cold-restore/retained-image acceptance. Synthetic or hand-written evidence cannot mark either real-system gate accepted. - Adds the fixed high-level App-owned browser protocol, broker, policy proxy, and pinned worker scaffold. The capability remains absent because current HAOS isolation cannot prove that Chromium is separated from App-private data and direct sockets; no sandbox bypass or extra privilege is enabled. - Limits hassfest discovery to the Integration tree so ignored local build manifests cannot be mistaken for Home Assistant integrations. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.3` without changing its Integration API compatibility. ## 0.8.3 - Brings the Home Assistant workspace materially closer to Codex desktop with one shared 840-pixel reading rail, a compact floating composer, a quieter navigation plane, and a 330-360-pixel floating Activity card. - Replaces the remaining nested transcript regions with one continuous scroll surface, so messages, safe live actions, approvals, questions, and run stages stay in their natural reading order. - Adds compact Codex-style **Outputs**, **Subagents**, **Background activity**, **Browser**, and **Sources** sections. Active agents show bounded working and completed counts without exposing names, prompts, commands, or paths. - Settles stale subagent working counts when a run completes, fails, or is cancelled while retaining completed and needs-attention totals. - Keeps artifact-index, archive, and preview failures local to **Files** after a successful thread/status refresh, preventing a valid reply from becoming a false global **Connection issue**. - Repairs orphaned busy thread projections when a private runtime checkpoint is missing after restart, and prevents an authoritative idle chat from reviving stale **Working**, **Preparing a response**, streaming, or steer controls. - Adds bounded local retry states for file indexing, archive creation, and previews without replacing healthy connection or transcript state. - Makes the run-stage activity popover viewport-safe on mobile and preserves reduced-motion, keyboard, touch-target, and screen-reader behavior. - Aligns the header, transcript, live activity, interactions, and composer to the same content measure and compensates the Activity card's visual gutter so desktop rails remain pixel-aligned. - Preserves that 840-pixel reading measure at 1280- and 1440-pixel widths by moving Activity into an accessible right drawer before the three-column shell can compress the conversation; exact responsive boundaries are browser-tested. - Hides empty Background, Browser, and Sources blocks until a run has real activity, while keeping Outputs and bounded Subagent status immediately visible. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.2` without changing its Integration API compatibility. ## 0.8.2 - Restores aggregate workspace-scan failures to the typed, retryable `filesystem_scan` conflict contract instead of misreporting an unrelated root entry as unsafe content in the selected chat. - Adds regression coverage for ordinary `.agents/skills` trees and PDF artifacts alongside operational aggregate-scan failures. - Keeps artifact-index and preview failures local to **Files**, preserving a successful reply and healthy connection state while offering a bounded retry. - Calibrates the wide Home Assistant panel to Codex desktop geometry: a wider, theme-derived navigation plane, one shared 900-pixel conversation axis, and a full-height context surface that does not disturb tablet, mobile-drawer, keyboard, or reduced-motion behavior. - Adds a user-invoked, standards-based **Focus mode** for the full Codex-style three-pane canvas, with the desktop rail tint and floating context surface, native Escape handling, and accessible focus restore. - Corrects the live-response activity suffix and strengthens semantic navigation/header typography without inflating transcript density. - Moves healthy component telemetry into **Context -> System**, keeps runtime warnings in the conversation, quiets user bubbles and Context tabs, and rounds the compact composer to match the Codex desktop treatment. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.2` without changing its Integration API compatibility. ## 0.8.1 - Replaces the conflicting read-only global artifact-quota check with a bounded artifact manifest, so a typed `reservation_conflict` does not persist after capacity is available. - Reconciles artifacts after a terminal run releases capacity. - Makes the panel perform bounded retries for typed artifact conflicts, retain local **Files** status, and offer an explicit retry instead of presenting a false global connection outage. - Remains a candidate pending installation and target-Home-Assistant validation. The 0.8.0 PDF-creation check succeeded, but PDF indexing/archive returned persistent HTTP 409 after an App restart; that acceptance remains failed/pending. - Tracks secure App-owned browser-worker follow-up in issue #43. Interactive Chromium remains deferred under ADR 0006. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.1` without changing its Integration API compatibility. ## 0.8.0 - Adds Codex-style live run stages, current-action copy, file/line counters, and bounded subagent status to the transcript, with a responsive activity popover and truthful completed/failed states. - Adds an authenticated, bounded PDF artifact viewer rendered locally with the bundled PDF.js canvas runtime. PDF scripting, XFA, eval, native embeds, and remote document frames stay disabled; open and download remain explicit fallbacks. - Hardens artifact previews with declared-size and streamed-byte limits, zero-byte range handling, stale-request invalidation, and blob URL cleanup. - Documents the separate fail-closed architecture required before interactive Chromium automation can be enabled inside the Home Assistant App. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.7.0` and paired Integration `0.8.0` without changing API v1 compatibility. ## 0.7.5 - Makes Live mode reliably select Codex's native web-search tool for weather, news, schedules, prices, rules, and other current information while keeping model-controlled shell networking blocked. - Replaces the tall Limits/Model/Thinking dashboard beneath the prompt with a compact Codex-style utility row. Full quota details remain available in the Usage view, and keyboard guidance remains exposed to assistive technology. - Makes release-contract tests derive App, Bridge, and Codex versions from their canonical authorities so future verified runtime updates do not fail on stale literal version assertions. - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.6.3` and paired Integration `0.7.5` without changing API v1 compatibility. ## 0.7.4 - Bundles the Sigstore-verified Codex runtime `0.144.5`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.6.2` without changing its Integration API compatibility. ## 0.7.3 - Adds provider-gated native live web search for Supervisor prompts and automations. The Integration preference defaults to Live, activates only after the App advertises the capability, and re-negotiates automatically after ChatGPT sign-in; model-controlled shell networking remains disabled. - Adds signed-in ChatGPT-account image generation only when Codex advertises both `imageGeneration` and `namespaceTools`. Generated image results are persisted as private, bounded PNG, JPEG, or WebP artifacts; no OpenAI API key is used. - Keeps the compact panel controls and fixes the updater's pinned `jsonschema` dependency installation for contract generation. - Bundles the Sigstore-verified Codex runtime `0.144.4`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.6.2` and paired Integration `0.7.3` without changing API v1 compatibility. ## 0.7.2 - Fixes the signed-in Codex plugin catalogue failing with HTTP 503. The Bridge now accepts a bounded 8 MiB app-server message and a bounded 60-second cold catalogue request; the exact target catalogue is roughly 4 MiB and takes about 36 seconds before its cache is warm. - Projects up to 4,096 plugins instead of silently stopping at 512, covering the current 1,916-plugin ChatGPT catalogue while retaining a finite limit. - Gives only plugin catalogue HTTP reads a 75-second Integration deadline and an 8 MiB response cap. Other private Bridge requests keep their shorter timeout policy. - Loads plugins and marketplaces from one Codex catalogue request instead of issuing two identical concurrent requests. - Stabilizes the queued-run total-deadline regression test across every valid terminal race without weakening runtime deadline behavior. - Bundles the Sigstore-verified Codex runtime `0.144.4`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.6.1` and Integration `0.7.2` without changing API v1 compatibility. ## 0.7.1 - Preserves unsaved Scheduled, Skill, marketplace, and MCP form values when live status refreshes re-render the administrator panel, preventing empty or partial management requests. - Adds regression coverage for management-form drafts and clears each draft only after cancellation or a confirmed successful mutation. - Bundles the Sigstore-verified Codex runtime `0.144.4`. - Keeps model and reasoning-level choices dynamically discovered from that runtime. - Bundles Bridge `0.6.0` without changing its Integration API compatibility. ## 0.7.0 - Adds administrator-only durable automations and scheduled-task controls. Home Assistant owns wall-clock scheduling; Bridge claims are revision-checked and idempotent, with explicit pause, overlap, capacity, and misfire outcomes. - Adds workspace skills, global/project `AGENTS.md`, plugin and marketplace management, with workspace confinement, bounded content, and private backup snapshots for instruction files. - Adds explicitly opt-in outbound MCP server management, disabled by default. Disabled startup suppresses and removes stale MCP server configuration while preserving other Codex extensions. Enabled MCP applies HTTPS hostname and best-effort DNS address validation, explicit OAuth login, no bearer-token configuration, no-store authorization responses, and decline-only MCP elicitation handling. Adding a server never publishes the App or Bridge. - Adds granular authenticated feature advertisement, so a newer Integration reports an actionable App-update requirement instead of sending unsupported automation, MCP, skill, plugin, or instruction requests to an older App. - Adds Codex-style live run feedback: a busy indicator on the active chat, safe streamed assistant text, a quiet current-action line, and a step chip with file/addition/deletion counts and an accessible activity-history popover. - Adds application-style Scheduled, Skills, Plugins, MCP, Instructions, keyboard-shortcut, About, Security, and system-information surfaces while preserving the Home Assistant theme, administrator boundary, and responsive transcript/composer layout. - Keeps model and reasoning choices dynamically discovered from the bundled Codex runtime, including GPT-5.6 and model-specific `max`/`ultra` levels when the signed-in account and runtime advertise them. - Coordinates Integration/App/package/panel asset release `0.7.0`, Bridge `0.6.0`, and the Sigstore-verified Codex runtime `0.144.4`. ## 0.6.6 - Reworks the panel around a clean Codex-style left navigation tree with title-first chat rows and one action menu per chat. - Makes archive groups collapse and search correctly, including the corrected search icon, while retaining accessible status and selection cues. - Places approvals and questions after the active transcript, keeps every decision reachable in the natural mobile scroll flow, and removes clipped or stale navigation action menus. - Enlarges mobile controls to 44px targets and folds limits, model, and thinking controls behind a compact mobile disclosure so chat work remains the focus. - Keeps the paired Integration/App/package/panel asset release at `0.6.6`, Bridge at `0.5.5`, and the Sigstore-verified Codex runtime at `0.144.4`. ## 0.6.5 - Recovers visible model and reasoning-level choices from Codex's bundled catalogue when live app-server discovery is temporarily unavailable. This remains dynamic and exposes the installed runtime's GPT-5.6 models plus model-specific `max` and `ultra` levels without hard-coded model names. - Retries provisional catalogues quickly, prefers a verified last-known-good catalogue, and keeps the small static list as the final emergency fallback. - Bundles Bridge `0.5.5` with the Sigstore-verified Codex `0.144.4` runtime; the paired Integration `0.6.5` also introduces a compact chat tree and keeps transient artifact reservations from becoming false connection failures. ## 0.6.4 - Publishes the Supervisor-assigned private App IP, rather than the App hostname, so discovery reaches the Bridge on Home Assistant OS. - Adds a fresh, validated non-secret publication marker on each App start so Supervisor re-pushes discovery while retaining its issued UUID. - Categorizes discovery failures without logging tokens or endpoint credentials, and migrates the dedicated `/config` mapping to `app_config:rw`. - Keeps Bridge `0.5.4` and Codex `0.144.4` without changing Integration API compatibility. ## 0.6.3 - Recovers ChatGPT device sign-in automatically when Codex omits a login correlation ID or a completion notification is delayed. A bounded account check preserves the active one-time code until sign-in is authoritative. - Invalidates the signed-out model catalogue as soon as ChatGPT entitlements change, so newly available Codex models and reasoning levels such as `max` and `ultra` are discovered immediately instead of after the cache expires. - Classifies usage windows by their advertised duration, keeping a weekly-only allowance under **Week** and reporting the absent five-hour window as off. - Keeps a successfully created chat selected and usable while secondary list, event, artifact, status, or interaction snapshots retry. - Bundles Bridge `0.5.4` and the Sigstore-verified Codex `0.144.4` runtime without changing the Integration API compatibility. ## 0.6.2 - Fixes a false startup failure when Codex `0.144.4` reports its bounded supplemental tool directories in `writableRoots`. Every reported root must now be canonical and contained by the selected workspace; sibling, parent, relative, duplicate, traversal, and malformed roots remain rejected. The same rule now protects both startup attestation and normal thread start/resume validation. - Hardens `lsm_get_self_attr` parsing by consuming the complete variable-length record stream and rejecting mismatched counts, trailing bytes, malformed contexts, and unexpected AppArmor state. - Preserves Codex's official `--no-proc` restrictive-container fallback on HAOS. User, PID, and network namespaces, the read-only filesystem, AppArmor, seccomp, zero capabilities, and `no_new_privs` remain enforced without requesting `SYS_ADMIN`. - Adds a distinctive Codex Bridge SVG identity, generated Home Assistant PNG assets, and a repository social-preview card. - The candidate files passed the complete production sandbox self-test on the target HAOS host. Immutable-image startup and authenticated readiness remain post-release gates. ## 0.6.1 - Fixes Supervisor discovery on Home Assistant OS by using Bashio's supported App-hostname helper. The ready Bridge can now publish its private endpoint instead of remaining in a retry loop. - Verifies at image-build time that the pinned Home Assistant base exports the required discovery helper. - Continues to bundle Bridge `0.5.3` and Codex `0.144.4` without changing the Integration API contract. ## 0.6.0 - Introduces the experimental private Home Assistant Codex Bridge App for `amd64` and its private Supervisor connection to the independently released `0.5.4` Integration. - Limits the writable host mapping to `app_config:rw`, with workspaces under `/config/workspaces`, and fails closed when the locked tool sandbox cannot complete its boot-time attestation. - Selects and verifies separate managed Codex permission profiles: Observe is read-only, while Edit and Full auto are confined to the selected writable workspace. Model-controlled tool networking remains disabled in every mode. - Uses ChatGPT device login; no OpenAI API-key setup is part of the App flow. - Discovers models and supported reasoning levels from the installed Codex runtime, preserving configured selections during marked temporary recovery. - Uses immutable versioned images. The running container does not self-update. App-image rollback is not yet validated; recovery is a cold backup or an existing private external Bridge until an earlier immutable tag and restore procedure are published and tested. The public App 0.6.1 release is a signed immutable image with an SPDX SBOM and build provenance, but remains experimental and is known-bad on target HAOS. Pinned Codex `0.144.4` correctly rebuilt its sandbox in official `--no-proc` restrictive-container mode. Readiness instead failed because App 0.6.1 required `writableRoots` to equal the workspace exactly, while Codex reports bounded supplemental tool directories beneath it. The candidate 0.6.2 files passed the complete production sandbox self-test on the target host; the released immutable image remains the authoritative startup and readiness gate.