codex_bridge_app/CHANGELOG.md
Rama main · réplica de lectura del repositorio original.
# 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.