Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
47bdbd1
fix(hotkey): 5 个快捷 setter 接入 Less Computer 键碰撞校验,消除与集中式检测的不一致 (#684)
Jun 16, 2026
2de1775
fix(hotkey): set_combo_hotkey 也接入 Less Computer 碰撞校验 (#684)
Jun 16, 2026
0356989
fix(capsule): 恢复 Windows 胶囊四边 clamp + 工作区定位,clamp_to_monitor 不再是死码 (#…
Jun 16, 2026
1429f1c
fix(local-asr): 模型下载「已存在即跳过」改为校验文件大小,截断/损坏文件重下 (#686)
Jun 16, 2026
f4233a6
fix(billing): polish 重试臂排除超时,避免请求体写出超时重发非幂等 LLM 请求 (#680)
Jun 16, 2026
d29c103
fix(coord): emit remote:result 回传手机端 (#691) + 限制润色多轮上下文条数降首字延迟 (#678)
Jun 16, 2026
eee8372
fix(history): 历史页搜索框改为可输入的 input,按转写内容实时过滤 (#612)
Jun 16, 2026
a0718b7
chore(ui): remove unused Aura skin layer (docs/contract/tokens) — app…
Jun 16, 2026
42908d2
chore(cleanup): remove dead handle_coding_agent_quick in coordinator.…
Jun 16, 2026
46383a3
chore(cleanup): remove genuinely-dead internal helpers — cargo check …
Jun 16, 2026
03a5d81
chore(cleanup): drop unused pcm import + underscore-prefix macOS inse…
Jun 16, 2026
990cf35
chore(cleanup): remove unused imports/locals in frontend — tsc --noEm…
Jun 16, 2026
9bb250b
refactor(coordinator): extract hotkey supervisor/bridge loops into co…
Jun 16, 2026
f83272b
refactor(coordinator): extract ASR engine wiring into coordinator/asr…
Jun 16, 2026
48193d7
refactor(coordinator): extract polish/translate orchestration into co…
Jun 16, 2026
4eb5550
refactor(coordinator): extract focus capture + capsule window into co…
Jun 16, 2026
a495841
refactor(coordinator): extract QA/chat-answer session lifecycle into …
Jun 16, 2026
c18a6b2
refactor(local-asr): move LocalAsr.tsx to LocalAsr/index.tsx for modu…
Jun 16, 2026
623cd25
refactor(local-asr): extract pure UI helpers into LocalAsr/helpers.ts…
Jun 16, 2026
31b3a06
refactor(local-asr): extract presentational sub-components into Local…
Jun 16, 2026
4f1966c
refactor(polish): extract LLM output sanitization into polish/output_…
Jun 16, 2026
b07b11c
refactor(polish): extract prompt composition into polish/prompt_compo…
Jun 16, 2026
c08d83f
refactor(types): extract hotkey/shortcut/capability types into types/…
Jun 16, 2026
991f3f6
docs: add RELEASING.md — admin-only release/tag policy
Jun 16, 2026
0e80a50
fix(ci): retarget macOS-capsule + windows-ui contracts at coordinator…
Jun 16, 2026
12f9686
Revert "refactor(types): extract hotkey/shortcut/capability types int…
Jun 16, 2026
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
59 changes: 59 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Releasing OpenLess

This document defines who may cut releases and how. It is policy, not a how-to for
day-to-day development.

## Authority: admins only

**Only repository administrators may create version tags and publish releases.**

- Only an admin may create a release tag (`v*-tauri`) or publish a GitHub Release.
- Contributors (including AI agents) **must not** create release tags, publish
releases, or trigger release automation. If a release is needed, **request an admin
to cut it** — open an issue or ping a maintainer with the target version and the
channel (Beta or Stable).
- Release automation (CI workflows that build, sign, and publish artifacts, and the
auto-updater feed) must be **admin-triggered only**. Tag-triggered pipelines are
considered admin-triggered because only admins may push the triggering tag.

## Channels and tags

Two channels; the branch name equals the channel name:

- **`beta`** — default development branch and the Beta channel.
- **`main`** — the Stable channel (正式版). Always releasable; only maintainers merge
`beta → main`.

Release tags (created by an admin only):

- **Stable release:** push tag `v<version>-tauri`.
- **Beta release:** push tag `v<version>-beta-tauri` (published as a GitHub
pre-release; never auto-updates Stable users).

## Version-sync gate

A release fails CI unless **five** files carry the same version. Bump them together
with `1-app/scripts/bump-version.sh <X.Y.Z>`:

- `openless-all/app/package.json`
- `openless-all/app/package-lock.json` (root and nested `packages.""`)
- `openless-all/app/src-tauri/tauri.conf.json`
- `openless-all/app/src-tauri/Cargo.toml`
- `openless-all/app/src-tauri/Cargo.lock` (the `name = "openless"` block)

The script takes a plain `X.Y.Z`; for a `-beta` suffix, edit the files by hand.

## Pre-release checklist (for the admin cutting the release)

1. Branch is the intended channel (`beta` for Beta, `main` for Stable).
2. All five version files match (version-sync gate green).
3. CI is green on the commit being tagged.
4. Then, and only then, push the release tag.

## Process summary

1. Land work on `beta` via PRs (open PRs against `beta`, never `main`).
2. For a Stable release, a maintainer merges `beta → main`.
3. An **admin** bumps the version (five-file sync), verifies CI is green, and pushes
the release tag — which is the only thing that triggers the publish/auto-update
pipeline.
Loading
Loading