Patch release 1.0.38: more reliable image chips in the composer, and enforced hooks from signed deployment requirements.toml.
Changelog
[fix] Image chips in the prompt buffer stay attached when [Image #N] comes back as plain text (for example via Ctrl+K then Ctrl+Y, undo, or a plain-text paste), as long as the composer still holds the image. If the image is gone, the placeholder is sent as text and a toast explains why.
[changed] Hooks from the signed $GROK_HOME/requirements.toml written by deployment sync are enforced the same way as root-owned system layers: they cannot be turned off from the hooks modal, enable/disable APIs, or disabled-hooks, and a lower-layer copy cannot take over their provenance while the file still matches the server-signed envelope. An edited copy, or one whose signature is missing or unreadable, is treated as the user’s own file again (requirements/user:); an unreadable requirements.toml contributes no hooks. Pairing this with fail_closed = true refuses the session on tampering (an unreadable file is still a read error and does not block startup).
[changed] Keyboard-shortcuts docs updated to describe the image-chip re-attach and toast behavior.
Under the hood
Prompt-widget image state handling tightened so chip re-attachment and missing-image placeholders behave consistently.
Worktree seed support extended in the shell layer.
Startup telemetry refined with finer spans for frame gaps, slow phases, and token accounting.
Upgrade notes
Deployments that ship a signed $GROK_HOME/requirements.toml should keep the signature file readable alongside it. With fail_closed = true, editing the signed file or dropping its signature will refuse the session until the signed envelope is restored.