carson 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (7) hide show
  1. checksums.yaml +4 -4
  2. data/API.md +1 -1
  3. data/MANUAL.md +1 -1
  4. data/README.md +1 -1
  5. data/RELEASE.md +72 -12
  6. data/VERSION +1 -1
  7. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd6dd1f0f0879b5838bc8d808261e44c408b4796ca85dcdd96f6885e397fd109
4
- data.tar.gz: 0313e015a232d3eb29b46c16567457ac5403d83f0bcd062f42d4a9efd374d22b
3
+ metadata.gz: fdf6978ed4ecdbef69aba67dba84b678d1145038ff47925a1dfbfdc777170135
4
+ data.tar.gz: a79ce86bc59f79528e0bf73d51098cd8f1ef1c96c2034d98900c282e26d047c7
5
5
  SHA512:
6
- metadata.gz: 7932b95b9798bd6935e5fc1f4f21962e31ebc473863e802f3870691e1613e00eaef5daa035239f6041d45750a6fb3fd85d29a8b72aa95285edcfbf9922992707
7
- data.tar.gz: 5ed203aa2b53d844cd71b2496c45de3abed272ce765d590e7695314e29c8b2affbe79cd59ee86286adaa1118696438448b0079da97107e30dd5d5d21fb0b83c2
6
+ metadata.gz: 5c11f2bd0fa18ca630b6c51bc23aae320e96bc63cfd24359c685b4664dd45594c68e3333554a9628c0411833de6c4a1779ef18cdd1d6b048516b116848a88484
7
+ data.tar.gz: c6d3810f02303d1dbe6f614bc85b6d4a4186a171fa08b9705f66a86cac206eaf1f7c63e67c8a346d5ec9fd0a4c3454fbedbf5fed7275e46a9f1d03f5bd6d55fb
data/API.md CHANGED
@@ -40,7 +40,7 @@ carson <command> [subcommand] [arguments]
40
40
 
41
41
  `--loop SECONDS` runs the govern cycle continuously, sleeping SECONDS between cycles. The loop isolates errors per cycle — a single failing cycle does not stop the daemon. `Ctrl-C` cleanly exits with a cycle count summary. SECONDS must be a positive integer.
42
42
 
43
- `govern.merge.method` accepts `squash`, `merge`, or `rebase` (default: `squash`). Squash keeps main linear — one PR, one commit. When the target repository enforces linear history via branch protection, only `rebase` is accepted by GitHub — set `govern.merge.method` to `rebase` to match.
43
+ `govern.merge.method` accepts `squash`, `merge`, or `rebase` (default: `squash`). Squash keeps main linear — one PR, one commit. When the target repository enforces linear history via branch protection, both `squash` and `rebase` are accepted by GitHub — only `merge` is rejected.
44
44
 
45
45
  ### Review commands
46
46
 
data/MANUAL.md CHANGED
@@ -160,7 +160,7 @@ Carson's `govern.merge.method` controls how `carson govern` merges ready PRs. Th
160
160
 
161
161
  **When to use other methods:**
162
162
 
163
- - `rebase` — if you want to preserve individual commits from the branch on main. Requires "Require linear history" in GitHub branch protection. GitHub rejects merge commits and squash merges when this is enabled.
163
+ - `rebase` — if you want to preserve individual commits from the branch on main. Both `squash` and `rebase` are compatible with GitHub's "Require linear history" branch protection only `merge` is rejected.
164
164
  - `merge` — if you want explicit merge commits. This creates a non-linear graph but preserves branch topology.
165
165
 
166
166
  **Important:** Carson's merge method must match your GitHub repository's allowed merge types. If your repo only allows squash merges and Carson is set to `merge`, govern will fail when it tries to auto-merge. Check your repository settings under Settings > General > Pull Requests.
data/README.md CHANGED
@@ -43,7 +43,7 @@ This separation is Carson's defining trait — the **outsider boundary**: no Car
43
43
  The data flow:
44
44
 
45
45
  1. You maintain a **policy source** — a directory or git repository containing your lint rules (e.g. `CODING/rubocop.yml`). Carson copies these to `~/.carson/lint/` via `carson lint setup`.
46
- 2. `carson init` installs git hooks, synchronises `.github/*` templates, and runs a first governance audit on a host repository.
46
+ 2. `carson onboard` installs git hooks, synchronises `.github/*` templates, and runs a first governance audit on a host repository.
47
47
  3. From that point, every commit triggers `carson audit` through the managed `pre-commit` hook. The same `carson audit` runs in GitHub Actions. If it passes locally, it passes in CI.
48
48
  4. `carson review gate` enforces review accountability: it blocks merge until every actionable reviewer comment has been formally acknowledged by the PR author through a **disposition comment**.
49
49
  5. `carson govern` triages all open PRs across your portfolio. Ready PRs are merged and housekept. Failing PRs get a coding agent dispatched to fix them. Stuck PRs are escalated for your attention.
data/RELEASE.md CHANGED
@@ -5,25 +5,87 @@ Release-note scope rule:
5
5
  - `RELEASE.md` records only version deltas, breaking changes, and migration actions.
6
6
  - Operational usage guides live in `MANUAL.md` and `API.md`.
7
7
 
8
- ## 2.6.0 — Default Squash Merge + Agent Discovery Templates
8
+ ## 2.7.0 — Documentation and Test Fixes
9
+
10
+ ### What changed
11
+
12
+ - **Stale command reference fixed.** README.md referenced the pre-2.3.0 command name `carson init` instead of `carson onboard`.
13
+ - **Linear history guidance corrected.** API.md and MANUAL.md incorrectly stated that GitHub's "Require linear history" only accepts rebase merges. Both squash and rebase are accepted — only merge commits are rejected.
14
+ - **Release notes separated.** The combined 2.6.0 entry has been split into distinct 2.5.0 (agent discovery) and 2.6.0 (squash default) entries.
15
+ - **Config default test made hermetic.** `test_config_govern_defaults` now isolates HOME to a temp directory, preventing the developer's local `~/.carson/config.json` from affecting test results.
16
+
17
+ ### What users must do now
18
+
19
+ 1. Upgrade Carson to `2.7.0`.
20
+
21
+ ### Breaking or removed behaviour
22
+
23
+ - None.
24
+
25
+ ### Upgrade steps
26
+
27
+ ```bash
28
+ cd ~/Dev/carson
29
+ git pull
30
+ bash install.sh
31
+ carson version
32
+ ```
33
+
34
+ ---
35
+
36
+ ## 2.6.0 — Default Squash Merge
9
37
 
10
38
  ### What changed
11
39
 
12
40
  - **Default merge method changed from `merge` to `squash`.** Squash-to-main keeps history linear: one PR = one commit on main. Every commit on main corresponds to a reviewed, CI-passing unit of work and is individually revertable. This aligns Carson's built-in default with how most teams should run.
41
+
42
+ ### What users must do now
43
+
44
+ 1. Upgrade Carson to `2.6.0`.
45
+ 2. If you previously set `govern.merge.method` to `"merge"` explicitly in `~/.carson/config.json`, review whether `"squash"` (now the default) is the right choice.
46
+
47
+ ### Breaking or removed behaviour
48
+
49
+ - `govern.merge.method` default changed from `merge` to `squash`. If your GitHub repository only allows merge commits, set `"govern": { "merge": { "method": "merge" } }` in `~/.carson/config.json`.
50
+
51
+ ### Upgrade steps
52
+
53
+ ```bash
54
+ cd ~/Dev/carson
55
+ git pull
56
+ bash install.sh
57
+ carson version
58
+ ```
59
+
60
+ ### Engineering Appendix
61
+
62
+ #### Modified components
63
+
64
+ - `lib/carson/config.rb` — `govern.merge.method` default changed from `"merge"` to `"squash"`.
65
+ - `test/runtime_govern_test.rb` — unit test updated for squash default.
66
+
67
+ #### Verification evidence
68
+
69
+ - CI passes on PR #78.
70
+
71
+ ---
72
+
73
+ ## 2.5.0 — Agent Discovery Templates
74
+
75
+ ### What changed
76
+
13
77
  - **Agent discovery via managed templates.** Interactive agents (Claude Code, Codex, Copilot) working in Carson-governed repos now discover Carson automatically. A new source-of-truth file `.github/carson-instructions.md` contains the full governance baseline. Agent-specific files (`.github/CLAUDE.md`, `.github/AGENTS.md`, `.github/copilot-instructions.md`) are one-line pointers to it. Zero drift risk — one file to maintain, all agents follow the same reference.
14
78
  - **Managed template set expanded.** `carson template apply` now writes five files: `carson-instructions.md`, `copilot-instructions.md`, `CLAUDE.md`, `AGENTS.md`, and `pull_request_template.md`.
15
79
 
16
80
  ### What users must do now
17
81
 
18
- 1. Upgrade Carson to `2.6.0`.
82
+ 1. Upgrade Carson to `2.5.0`.
19
83
  2. Run `carson prepare` in each governed repository.
20
84
  3. Run `carson template apply` to write the new managed files.
21
85
  4. Commit the new `.github/*` files.
22
- 5. If you previously set `govern.merge.method` to `"merge"` explicitly in `~/.carson/config.json`, review whether `"squash"` (now the default) is the right choice.
23
86
 
24
87
  ### Breaking or removed behaviour
25
88
 
26
- - `govern.merge.method` default changed from `merge` to `squash`. If your GitHub repository only allows merge commits, set `"govern": { "merge": { "method": "merge" } }` in `~/.carson/config.json`.
27
89
  - `.github/copilot-instructions.md` content replaced with a one-line reference. The governance baseline now lives in `.github/carson-instructions.md`.
28
90
 
29
91
  ### Upgrade steps
@@ -39,12 +101,6 @@ carson template apply
39
101
 
40
102
  ### Engineering Appendix
41
103
 
42
- #### Modified components
43
-
44
- - `lib/carson/config.rb` — `govern.merge.method` default changed from `"merge"` to `"squash"`; `template.managed_files` expanded to include `carson-instructions.md`, `CLAUDE.md`, and `AGENTS.md`.
45
- - `script/ci_smoke.sh` — offboard removal check updated for new managed files.
46
- - `test/runtime_govern_test.rb` — unit test updated for squash default.
47
-
48
104
  #### New files
49
105
 
50
106
  - `templates/.github/carson-instructions.md` — governance baseline source of truth.
@@ -55,15 +111,19 @@ carson template apply
55
111
 
56
112
  - `templates/.github/copilot-instructions.md` — replaced full content with one-line reference.
57
113
 
114
+ #### Modified components
115
+
116
+ - `lib/carson/config.rb` — `template.managed_files` expanded to include `carson-instructions.md`, `CLAUDE.md`, and `AGENTS.md`.
117
+ - `script/ci_smoke.sh` — offboard removal check updated for new managed files.
118
+
58
119
  #### Public interface and config changes
59
120
 
60
- - `govern.merge.method` default: `"merge"` → `"squash"`.
61
121
  - `template.managed_files` default expanded from 2 to 5 files.
62
122
  - Exit status contract unchanged.
63
123
 
64
124
  #### Verification evidence
65
125
 
66
- - CI passes on PRs #77 and #78.
126
+ - CI passes on PR #77.
67
127
 
68
128
  ---
69
129
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.6.0
1
+ 2.7.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carson
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hailei Wang