Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/release-signature-reminder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Release Signature Reminder

# Opens (and re-pings) a "Sign release vX.Y.Z (minisign)" issue while the latest
# release has no checksums-sha256.txt.minisig, and closes it once the signature
# is uploaded. It signs nothing and holds no signing secret: the minisign key
# stays offline (scripts/sign-release.sh, AGENTS.md "Release procedure" step 6).
#
# workflow_run is used because a release created with GITHUB_TOKEN does not
# trigger `release` events; the schedule re-pings and notices the signature.

on:
workflow_run:
workflows: ["Release"]
types: [completed]
schedule:
- cron: "17 */6 * * *"
workflow_dispatch:

concurrency:
group: release-signature-reminder
cancel-in-progress: false

permissions:
contents: read
issues: write

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true

jobs:
remind:
name: Remind to sign
if: github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false

- name: Check the latest release for a signature
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
RELEASE_SIGNER: ajianaz
REMINDER_AFTER_HOURS: "12"
run: bash scripts/release-signature-reminder.sh
12 changes: 12 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,18 @@ Rust workspace: uteke-core (engine), uteke-cli, uteke-server, uteke-mcp, docgen.
(stub gh/cosign, throwaway key; not wired into CI). Verify the
`.minisig` is on the release before announcing. Until it is uploaded,
`uteke upgrade` fails closed for that release (#1327).
Reminder: `.github/workflows/release-signature-reminder.yml` runs after the
Release workflow and every 6 hours. While the latest release has a bundle but no
`.minisig` it opens the issue `Sign release vX.Y.Z (minisign)` (assigned to the
owner), re-pings it every 12 h and closes it itself once the `.minisig` is
uploaded. Reminders for older releases are closed automatically, as superseded
(`uteke upgrade` only installs the latest release) or when their `.minisig`
appears. "Latest" follows GitHub's definition (by creation date, the same release
`uteke upgrade` installs), so a backport patch published after a newer minor
supersedes the newer release's reminder. Only issues and comments authored by the
Actions bot or the owner are acted on. It signs nothing and holds no key. Test its
script with `bash scripts/tests/release-signature-reminder.test.sh` (stub gh, not
wired into CI).
7. **After the tag.** Merge the homebrew-tap PR the workflow opened (its title/body
follow the tap's rules since #1384, and the job already re-verified every SHA256
against `checksums-sha256.txt`; Cora there was fixed in homebrew-tap#6), then
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
- **`ORT_LIB_PATH` pointing at a directory no longer leaves uteke without embeddings (#1459)** - the Homebrew shims exported the `libexec` directory (v0.19.0 onwards), `dlopen` failed on it, and every such install silently stored memories FTS5-only (`embedding_written: false`, `uteke verify` MISMATCH). A directory that holds the platform library (`libonnxruntime.so`, `libonnxruntime.dylib` or `onnxruntime.dll`) is now accepted with a warning; a directory without it is a clear error that says to set the library file. The tap fix is codecoradev/homebrew-tap#10 (`brew update && brew reinstall codecoradev/tap/uteke`). Docker and the release tarballs were not affected.
- **CLI log lines no longer corrupt `--json` output (#1461)** - the console log layer wrote to stdout, so any WARN or ERROR (for example a failed embedding) was printed in front of the command's JSON and `json.loads(stdout)` failed. Console logs now go to stderr; the log file and the command output are unchanged.

### Changed

- Internal: `release-signature-reminder` workflow and script open and re-ping a `Sign release vX.Y.Z (minisign)` issue until the offline minisign signature is on the release, and close reminders for superseded releases automatically (#1327).

## [0.21.0] - 2026-10-13

Minor release. Theme: **honest recall feedback, one access policy for MCP over
Expand Down
Loading