Commit f827923053

f827923053f78ca501630de8b21b7b3f46d4b2ec

parent: 98e6424c98

Verified · cmc ci/build: success ci/sonar: success ci/test: success ci/vuln: success

cmc <hello@cleberg.net> · 2026-09-08 02:43 UTC

CHANGELOG: v1.16.0
CHANGELOG.org +86
@@ -4,6 +4,92 @@ Versioning follows semver from v0.1.0. Database migrations run
44automatically on daemon start; upgrade notes appear per release when
55anything beyond "replace the binary and restart" is needed.
66
7* v1.16.0 — 2026-09-08
8
9What stops a stranger from moving here: the repository plumbing and
10the team gates the #185 walk found missing, twelve merge requests
11merged as one stack.
12
13** Repositories
14
15- =repo settings default-branch <owner/name> <branch>= moves HEAD and
16 the record; a branch that does not exist is refused. A first push of
17 =master= or =trunk= into a fresh repository moves the unborn HEAD to
18 the branch that arrived, so the clone checks something out. Settings
19 page select. #189
20- =repo rename <owner/name> <new-name>=: the row and the directory move
21 together, with transfer's revert on a failed move. Clone URLs change.
22 #190
23- =repo settings require-mr on=: an existing protected branch refuses
24 every direct push in pre-receive, =repo commit-file= and the web
25 editor included; =mr merge= is its only writer. Creating the branch
26 is still a push. #197
27- =repo settings protect-tag <glob>= (and =unprotect-tag=): matching
28 tags are created once and refuse moves and deletion. Separately, a
29 tag a release is anchored to refuses both while the release exists,
30 protected or not; delete the release first. #201
31- =repo access list= reports effective access: one row per account
32 with the highest role and where it comes from (owner, direct, org
33 admin, org member, team). It used to list direct grants only, so a
34 repository reached through teams answered with nothing. #200
35- Removing an org member drops their team memberships in the same
36 transaction. They kept every grant their teams carried, and re-adding
37 them to the org restored nothing because nothing had gone. #196
38- An outsider gets one answer about an org: its existence and members
39 are public, its teams are for members, and =org team list= and =show=
40 refuse a non-member rather than say the org does not exist. Ref #200
41- A repository name may not end in =.atom=, as it may not end in
42 =.git=. Ref #192
43
44** Merge requests
45
46- A push that leaves the merge request's diff unchanged keeps its fresh
47 reviews: the patch-id of each revision against its own merge base is
48 compared, and a rebase onto a target that moved on no longer stales
49 every approval. A push that changes the diff stales them as before.
50 #198
51- The merge gates are one computation shared by =mr show= (a =gates=
52 block: approvals counted and required, owners outstanding per file,
53 open threads, checks, whether a fast-forward is possible), the merge
54 request page, and =mr merge=, which names every unmet gate in one
55 refusal rather than the first. =mr review= reports =counts= and says
56 when a verdict is advisory because the reviewer cannot write. #199
57
58** Notifications
59
60- =@name= in an issue, merge request, comment or diff comment files
61 "mentioned you" in that account's inbox and makes them a participant
62 of the thread, provided they can read the repository and have not
63 muted it. Watchers are not told about a mention addressed to someone
64 else. Migration 0047. #202
65- =notifications settings mail on|off= (and =show=): inbox rows are
66 filed either way, this is the mail half. Login links are not activity
67 and still arrive. The account page carries the same switch.
68 Migration 0048. Ref #194
69
70** Web
71
72- Atom feeds: =/{owner}/{repo}/releases.atom=,
73 =/{owner}/{repo}/log.atom[/{ref}]= and =/{owner}/activity.atom=,
74 rendered over the rows the pages already serve. The owner feed covers
75 public repositories only, since a reader carries no session; a
76 private repository answers 404. The releases, log and owner pages
77 carry the discovery link. #192
78
79** Documentation
80
81- The Users page says what differs over stock ssh: a multi-word value
82 needs a second layer of quotes, and =help <noun>= replaces =--help=.
83 The companion-wiki paragraph #170 made stale now points at
84 =.gitbay/wiki/=. #204
85
86** Upgrading
87
88Replace the binary and reinstall the CLI. Two migrations (0047, the
89mentions table; 0048, the per-account mail switch), applied on start.
90Nothing changes behaviour until a setting is turned on: =require-mr=,
91=protect-tag= and =mail off= are all opt-in.
92
793* v1.15.0 — 2026-09-07
894
995Builds run in containers, a rebase is not rebuilt, and a runner restart