@hasna/terminal 2.3.0 → 2.3.2

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 (267) hide show
  1. package/dist/App.js +404 -0
  2. package/dist/Browse.js +79 -0
  3. package/dist/FuzzyPicker.js +47 -0
  4. package/dist/Onboarding.js +51 -0
  5. package/dist/Spinner.js +12 -0
  6. package/dist/StatusBar.js +49 -0
  7. package/dist/ai.js +322 -0
  8. package/dist/cache.js +41 -0
  9. package/dist/cli.js +64 -16
  10. package/dist/command-rewriter.js +64 -0
  11. package/dist/command-validator.js +86 -0
  12. package/dist/compression.js +107 -0
  13. package/dist/context-hints.js +275 -0
  14. package/dist/diff-cache.js +107 -0
  15. package/dist/discover.js +212 -0
  16. package/dist/economy.js +123 -0
  17. package/dist/expand-store.js +38 -0
  18. package/dist/file-cache.js +72 -0
  19. package/dist/file-index.js +62 -0
  20. package/dist/history.js +62 -0
  21. package/dist/lazy-executor.js +54 -0
  22. package/dist/line-dedup.js +59 -0
  23. package/dist/loop-detector.js +75 -0
  24. package/dist/mcp/install.js +98 -0
  25. package/dist/mcp/server.js +569 -0
  26. package/dist/noise-filter.js +86 -0
  27. package/dist/output-processor.js +129 -0
  28. package/dist/output-router.js +41 -0
  29. package/dist/output-store.js +111 -0
  30. package/dist/parsers/base.js +2 -0
  31. package/dist/parsers/build.js +64 -0
  32. package/dist/parsers/errors.js +101 -0
  33. package/dist/parsers/files.js +78 -0
  34. package/dist/parsers/git.js +99 -0
  35. package/dist/parsers/index.js +48 -0
  36. package/dist/parsers/tests.js +89 -0
  37. package/dist/providers/anthropic.js +39 -0
  38. package/dist/providers/base.js +4 -0
  39. package/dist/providers/cerebras.js +95 -0
  40. package/dist/providers/groq.js +95 -0
  41. package/dist/providers/index.js +73 -0
  42. package/dist/providers/xai.js +95 -0
  43. package/dist/recipes/model.js +20 -0
  44. package/dist/recipes/storage.js +136 -0
  45. package/dist/search/content-search.js +68 -0
  46. package/dist/search/file-search.js +61 -0
  47. package/dist/search/filters.js +34 -0
  48. package/dist/search/index.js +5 -0
  49. package/dist/search/semantic.js +320 -0
  50. package/dist/session-boot.js +59 -0
  51. package/dist/session-context.js +55 -0
  52. package/dist/sessions-db.js +173 -0
  53. package/dist/smart-display.js +286 -0
  54. package/dist/snapshots.js +51 -0
  55. package/dist/supervisor.js +112 -0
  56. package/dist/test-watchlist.js +131 -0
  57. package/dist/tool-profiles.js +122 -0
  58. package/dist/tree.js +94 -0
  59. package/dist/usage-cache.js +65 -0
  60. package/package.json +8 -1
  61. package/src/ai.ts +8 -0
  62. package/src/cli.tsx +57 -18
  63. package/src/output-processor.ts +6 -1
  64. package/src/output-store.ts +58 -12
  65. package/src/tool-profiles.ts +139 -0
  66. package/.claude/scheduled_tasks.lock +0 -1
  67. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
  68. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  69. package/CONTRIBUTING.md +0 -80
  70. package/benchmarks/benchmark.mjs +0 -115
  71. package/imported_modules.txt +0 -0
  72. package/temp/rtk/.claude/agents/code-reviewer.md +0 -221
  73. package/temp/rtk/.claude/agents/debugger.md +0 -519
  74. package/temp/rtk/.claude/agents/rtk-testing-specialist.md +0 -461
  75. package/temp/rtk/.claude/agents/rust-rtk.md +0 -511
  76. package/temp/rtk/.claude/agents/technical-writer.md +0 -355
  77. package/temp/rtk/.claude/commands/diagnose.md +0 -352
  78. package/temp/rtk/.claude/commands/test-routing.md +0 -362
  79. package/temp/rtk/.claude/hooks/bash/pre-commit-format.sh +0 -16
  80. package/temp/rtk/.claude/hooks/rtk-rewrite.sh +0 -70
  81. package/temp/rtk/.claude/hooks/rtk-suggest.sh +0 -152
  82. package/temp/rtk/.claude/rules/cli-testing.md +0 -526
  83. package/temp/rtk/.claude/skills/issue-triage/SKILL.md +0 -348
  84. package/temp/rtk/.claude/skills/issue-triage/templates/issue-comment.md +0 -134
  85. package/temp/rtk/.claude/skills/performance.md +0 -435
  86. package/temp/rtk/.claude/skills/pr-triage/SKILL.md +0 -315
  87. package/temp/rtk/.claude/skills/pr-triage/templates/review-comment.md +0 -71
  88. package/temp/rtk/.claude/skills/repo-recap.md +0 -206
  89. package/temp/rtk/.claude/skills/rtk-tdd/SKILL.md +0 -78
  90. package/temp/rtk/.claude/skills/rtk-tdd/references/testing-patterns.md +0 -124
  91. package/temp/rtk/.claude/skills/security-guardian.md +0 -503
  92. package/temp/rtk/.claude/skills/ship.md +0 -404
  93. package/temp/rtk/.github/workflows/benchmark.yml +0 -34
  94. package/temp/rtk/.github/workflows/dco-check.yaml +0 -12
  95. package/temp/rtk/.github/workflows/release-please.yml +0 -51
  96. package/temp/rtk/.github/workflows/release.yml +0 -343
  97. package/temp/rtk/.github/workflows/security-check.yml +0 -135
  98. package/temp/rtk/.github/workflows/validate-docs.yml +0 -78
  99. package/temp/rtk/.release-please-manifest.json +0 -3
  100. package/temp/rtk/ARCHITECTURE.md +0 -1491
  101. package/temp/rtk/CHANGELOG.md +0 -640
  102. package/temp/rtk/CLAUDE.md +0 -605
  103. package/temp/rtk/CONTRIBUTING.md +0 -199
  104. package/temp/rtk/Cargo.lock +0 -1668
  105. package/temp/rtk/Cargo.toml +0 -64
  106. package/temp/rtk/Formula/rtk.rb +0 -43
  107. package/temp/rtk/INSTALL.md +0 -390
  108. package/temp/rtk/LICENSE +0 -21
  109. package/temp/rtk/README.md +0 -386
  110. package/temp/rtk/README_es.md +0 -159
  111. package/temp/rtk/README_fr.md +0 -197
  112. package/temp/rtk/README_ja.md +0 -159
  113. package/temp/rtk/README_ko.md +0 -159
  114. package/temp/rtk/README_zh.md +0 -167
  115. package/temp/rtk/ROADMAP.md +0 -15
  116. package/temp/rtk/SECURITY.md +0 -217
  117. package/temp/rtk/TEST_EXEC_TIME.md +0 -102
  118. package/temp/rtk/build.rs +0 -57
  119. package/temp/rtk/docs/AUDIT_GUIDE.md +0 -432
  120. package/temp/rtk/docs/FEATURES.md +0 -1410
  121. package/temp/rtk/docs/TROUBLESHOOTING.md +0 -309
  122. package/temp/rtk/docs/filter-workflow.md +0 -102
  123. package/temp/rtk/docs/images/gain-dashboard.jpg +0 -0
  124. package/temp/rtk/docs/tracking.md +0 -583
  125. package/temp/rtk/hooks/opencode-rtk.ts +0 -39
  126. package/temp/rtk/hooks/rtk-awareness.md +0 -29
  127. package/temp/rtk/hooks/rtk-rewrite.sh +0 -61
  128. package/temp/rtk/hooks/test-rtk-rewrite.sh +0 -442
  129. package/temp/rtk/install.sh +0 -124
  130. package/temp/rtk/release-please-config.json +0 -10
  131. package/temp/rtk/scripts/benchmark.sh +0 -592
  132. package/temp/rtk/scripts/check-installation.sh +0 -162
  133. package/temp/rtk/scripts/install-local.sh +0 -37
  134. package/temp/rtk/scripts/rtk-economics.sh +0 -137
  135. package/temp/rtk/scripts/test-all.sh +0 -561
  136. package/temp/rtk/scripts/test-aristote.sh +0 -227
  137. package/temp/rtk/scripts/test-tracking.sh +0 -79
  138. package/temp/rtk/scripts/update-readme-metrics.sh +0 -32
  139. package/temp/rtk/scripts/validate-docs.sh +0 -73
  140. package/temp/rtk/src/aws_cmd.rs +0 -880
  141. package/temp/rtk/src/binlog.rs +0 -1645
  142. package/temp/rtk/src/cargo_cmd.rs +0 -1727
  143. package/temp/rtk/src/cc_economics.rs +0 -1157
  144. package/temp/rtk/src/ccusage.rs +0 -340
  145. package/temp/rtk/src/config.rs +0 -187
  146. package/temp/rtk/src/container.rs +0 -855
  147. package/temp/rtk/src/curl_cmd.rs +0 -134
  148. package/temp/rtk/src/deps.rs +0 -268
  149. package/temp/rtk/src/diff_cmd.rs +0 -367
  150. package/temp/rtk/src/discover/mod.rs +0 -274
  151. package/temp/rtk/src/discover/provider.rs +0 -388
  152. package/temp/rtk/src/discover/registry.rs +0 -2022
  153. package/temp/rtk/src/discover/report.rs +0 -202
  154. package/temp/rtk/src/discover/rules.rs +0 -667
  155. package/temp/rtk/src/display_helpers.rs +0 -402
  156. package/temp/rtk/src/dotnet_cmd.rs +0 -1771
  157. package/temp/rtk/src/dotnet_format_report.rs +0 -133
  158. package/temp/rtk/src/dotnet_trx.rs +0 -593
  159. package/temp/rtk/src/env_cmd.rs +0 -204
  160. package/temp/rtk/src/filter.rs +0 -462
  161. package/temp/rtk/src/filters/README.md +0 -52
  162. package/temp/rtk/src/filters/ansible-playbook.toml +0 -34
  163. package/temp/rtk/src/filters/basedpyright.toml +0 -47
  164. package/temp/rtk/src/filters/biome.toml +0 -45
  165. package/temp/rtk/src/filters/brew-install.toml +0 -37
  166. package/temp/rtk/src/filters/composer-install.toml +0 -40
  167. package/temp/rtk/src/filters/df.toml +0 -16
  168. package/temp/rtk/src/filters/dotnet-build.toml +0 -64
  169. package/temp/rtk/src/filters/du.toml +0 -16
  170. package/temp/rtk/src/filters/fail2ban-client.toml +0 -15
  171. package/temp/rtk/src/filters/gcc.toml +0 -49
  172. package/temp/rtk/src/filters/gcloud.toml +0 -22
  173. package/temp/rtk/src/filters/hadolint.toml +0 -24
  174. package/temp/rtk/src/filters/helm.toml +0 -29
  175. package/temp/rtk/src/filters/iptables.toml +0 -27
  176. package/temp/rtk/src/filters/jj.toml +0 -28
  177. package/temp/rtk/src/filters/jq.toml +0 -24
  178. package/temp/rtk/src/filters/make.toml +0 -41
  179. package/temp/rtk/src/filters/markdownlint.toml +0 -24
  180. package/temp/rtk/src/filters/mix-compile.toml +0 -27
  181. package/temp/rtk/src/filters/mix-format.toml +0 -15
  182. package/temp/rtk/src/filters/mvn-build.toml +0 -44
  183. package/temp/rtk/src/filters/oxlint.toml +0 -43
  184. package/temp/rtk/src/filters/ping.toml +0 -63
  185. package/temp/rtk/src/filters/pio-run.toml +0 -40
  186. package/temp/rtk/src/filters/poetry-install.toml +0 -50
  187. package/temp/rtk/src/filters/pre-commit.toml +0 -35
  188. package/temp/rtk/src/filters/ps.toml +0 -16
  189. package/temp/rtk/src/filters/quarto-render.toml +0 -41
  190. package/temp/rtk/src/filters/rsync.toml +0 -48
  191. package/temp/rtk/src/filters/shellcheck.toml +0 -27
  192. package/temp/rtk/src/filters/shopify-theme.toml +0 -29
  193. package/temp/rtk/src/filters/skopeo.toml +0 -45
  194. package/temp/rtk/src/filters/sops.toml +0 -16
  195. package/temp/rtk/src/filters/ssh.toml +0 -44
  196. package/temp/rtk/src/filters/stat.toml +0 -34
  197. package/temp/rtk/src/filters/swift-build.toml +0 -41
  198. package/temp/rtk/src/filters/systemctl-status.toml +0 -33
  199. package/temp/rtk/src/filters/terraform-plan.toml +0 -35
  200. package/temp/rtk/src/filters/tofu-fmt.toml +0 -16
  201. package/temp/rtk/src/filters/tofu-init.toml +0 -38
  202. package/temp/rtk/src/filters/tofu-plan.toml +0 -35
  203. package/temp/rtk/src/filters/tofu-validate.toml +0 -17
  204. package/temp/rtk/src/filters/trunk-build.toml +0 -39
  205. package/temp/rtk/src/filters/ty.toml +0 -50
  206. package/temp/rtk/src/filters/uv-sync.toml +0 -37
  207. package/temp/rtk/src/filters/xcodebuild.toml +0 -99
  208. package/temp/rtk/src/filters/yamllint.toml +0 -25
  209. package/temp/rtk/src/find_cmd.rs +0 -598
  210. package/temp/rtk/src/format_cmd.rs +0 -386
  211. package/temp/rtk/src/gain.rs +0 -723
  212. package/temp/rtk/src/gh_cmd.rs +0 -1651
  213. package/temp/rtk/src/git.rs +0 -2012
  214. package/temp/rtk/src/go_cmd.rs +0 -592
  215. package/temp/rtk/src/golangci_cmd.rs +0 -254
  216. package/temp/rtk/src/grep_cmd.rs +0 -288
  217. package/temp/rtk/src/gt_cmd.rs +0 -810
  218. package/temp/rtk/src/hook_audit_cmd.rs +0 -283
  219. package/temp/rtk/src/hook_check.rs +0 -171
  220. package/temp/rtk/src/init.rs +0 -1859
  221. package/temp/rtk/src/integrity.rs +0 -537
  222. package/temp/rtk/src/json_cmd.rs +0 -231
  223. package/temp/rtk/src/learn/detector.rs +0 -628
  224. package/temp/rtk/src/learn/mod.rs +0 -119
  225. package/temp/rtk/src/learn/report.rs +0 -184
  226. package/temp/rtk/src/lint_cmd.rs +0 -694
  227. package/temp/rtk/src/local_llm.rs +0 -316
  228. package/temp/rtk/src/log_cmd.rs +0 -248
  229. package/temp/rtk/src/ls.rs +0 -324
  230. package/temp/rtk/src/main.rs +0 -2482
  231. package/temp/rtk/src/mypy_cmd.rs +0 -389
  232. package/temp/rtk/src/next_cmd.rs +0 -241
  233. package/temp/rtk/src/npm_cmd.rs +0 -236
  234. package/temp/rtk/src/parser/README.md +0 -267
  235. package/temp/rtk/src/parser/error.rs +0 -46
  236. package/temp/rtk/src/parser/formatter.rs +0 -336
  237. package/temp/rtk/src/parser/mod.rs +0 -311
  238. package/temp/rtk/src/parser/types.rs +0 -119
  239. package/temp/rtk/src/pip_cmd.rs +0 -302
  240. package/temp/rtk/src/playwright_cmd.rs +0 -479
  241. package/temp/rtk/src/pnpm_cmd.rs +0 -573
  242. package/temp/rtk/src/prettier_cmd.rs +0 -221
  243. package/temp/rtk/src/prisma_cmd.rs +0 -482
  244. package/temp/rtk/src/psql_cmd.rs +0 -382
  245. package/temp/rtk/src/pytest_cmd.rs +0 -384
  246. package/temp/rtk/src/read.rs +0 -217
  247. package/temp/rtk/src/rewrite_cmd.rs +0 -50
  248. package/temp/rtk/src/ruff_cmd.rs +0 -402
  249. package/temp/rtk/src/runner.rs +0 -271
  250. package/temp/rtk/src/summary.rs +0 -297
  251. package/temp/rtk/src/tee.rs +0 -405
  252. package/temp/rtk/src/telemetry.rs +0 -248
  253. package/temp/rtk/src/toml_filter.rs +0 -1655
  254. package/temp/rtk/src/tracking.rs +0 -1416
  255. package/temp/rtk/src/tree.rs +0 -209
  256. package/temp/rtk/src/tsc_cmd.rs +0 -259
  257. package/temp/rtk/src/utils.rs +0 -432
  258. package/temp/rtk/src/verify_cmd.rs +0 -47
  259. package/temp/rtk/src/vitest_cmd.rs +0 -385
  260. package/temp/rtk/src/wc_cmd.rs +0 -401
  261. package/temp/rtk/src/wget_cmd.rs +0 -260
  262. package/temp/rtk/tests/fixtures/dotnet/build_failed.txt +0 -11
  263. package/temp/rtk/tests/fixtures/dotnet/format_changes.json +0 -31
  264. package/temp/rtk/tests/fixtures/dotnet/format_empty.json +0 -1
  265. package/temp/rtk/tests/fixtures/dotnet/format_success.json +0 -12
  266. package/temp/rtk/tests/fixtures/dotnet/test_failed.txt +0 -18
  267. package/tsconfig.json +0 -15
@@ -1,404 +0,0 @@
1
- ---
2
- description: Build, commit, push & version bump workflow - automates the complete release cycle
3
- ---
4
-
5
- # Ship Release
6
-
7
- Systematic release workflow for RTK: build verification, version bump, changelog update, git tag, and push to trigger CI/CD.
8
-
9
- ## When to Use
10
-
11
- - **Manual invocation**: When ready to release a new version
12
- - **After feature completion**: Before tagging and publishing
13
- - **Before version bump**: To automate the release checklist
14
-
15
- ## Pre-Release Checklist (Auto-Verified)
16
-
17
- Before running `/ship`, verify:
18
-
19
- ### 1. Quality Checks Pass
20
- ```bash
21
- cargo fmt --all --check # Code formatted
22
- cargo clippy --all-targets # Zero warnings
23
- cargo test --all # All tests pass
24
- ```
25
-
26
- ### 2. Performance Benchmarks Pass
27
- ```bash
28
- hyperfine 'target/release/rtk git status' --warmup 3
29
- # Should show <10ms mean time
30
-
31
- /usr/bin/time -l target/release/rtk git status
32
- # Should show <5MB maximum resident set size
33
- ```
34
-
35
- ### 3. Integration Tests Pass
36
- ```bash
37
- cargo install --path . --force # Install locally
38
- cargo test --ignored # Run integration tests
39
- ```
40
-
41
- ### 4. Git Clean State
42
- ```bash
43
- git status # Should show "nothing to commit, working tree clean"
44
- ```
45
-
46
- ## Release Workflow
47
-
48
- ### Step 1: Determine Version Bump
49
-
50
- **Semantic Versioning** (MAJOR.MINOR.PATCH):
51
- - **MAJOR** (v1.0.0): Breaking changes (rare for RTK)
52
- - **MINOR** (v0.X.0): New features, new filters, new commands
53
- - **PATCH** (v0.0.X): Bug fixes, performance improvements
54
-
55
- **Examples**:
56
- - New filter added (`rtk pytest`) → **MINOR** bump (v0.16.0 → v0.17.0)
57
- - Bug fix in `git log` filter → **PATCH** bump (v0.16.0 → v0.16.1)
58
- - Breaking CLI arg change → **MAJOR** bump (v0.16.0 → v1.0.0)
59
-
60
- ### Step 2: Update Version
61
-
62
- **Files to update**:
63
- 1. `Cargo.toml` (line 3): `version = "X.Y.Z"`
64
- 2. `CHANGELOG.md` (add new section)
65
- 3. `README.md` (if version mentioned)
66
-
67
- **Example**:
68
- ```toml
69
- # Cargo.toml (before)
70
- [package]
71
- name = "rtk"
72
- version = "0.16.0" # Current version
73
-
74
- # Cargo.toml (after - MINOR bump)
75
- [package]
76
- name = "rtk"
77
- version = "0.17.0" # New version
78
- ```
79
-
80
- **CHANGELOG.md template**:
81
- ```markdown
82
- ## [0.17.0] - 2026-02-15
83
-
84
- ### Added
85
- - `rtk pytest` command for Python test filtering (90% token reduction)
86
- - Support for `pytest` JSON output parsing
87
- - Integration with `uv` package manager auto-detection
88
-
89
- ### Fixed
90
- - Shell escaping for PowerShell on Windows
91
- - Memory leak in regex pattern caching
92
-
93
- ### Changed
94
- - Updated `cargo test` filter to show test names in failures
95
- ```
96
-
97
- ### Step 3: Build and Verify
98
-
99
- ```bash
100
- # Clean build
101
- cargo clean
102
- cargo build --release
103
-
104
- # Verify binary
105
- target/release/rtk --version
106
- # Should show new version
107
-
108
- # Run full quality checks
109
- cargo fmt --all --check
110
- cargo clippy --all-targets
111
- cargo test --all
112
-
113
- # Benchmark performance
114
- hyperfine 'target/release/rtk git status' --warmup 3
115
- # Should still be <10ms
116
- ```
117
-
118
- ### Step 4: Commit Version Bump
119
-
120
- ```bash
121
- # Stage version files
122
- git add Cargo.toml Cargo.lock CHANGELOG.md README.md
123
-
124
- # Commit with version tag
125
- git commit -m "chore(release): bump version to v0.17.0
126
-
127
- - Updated Cargo.toml version
128
- - Updated CHANGELOG.md with release notes
129
- - Verified all quality checks pass
130
- - Benchmarked performance (<10ms startup)
131
-
132
- Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"
133
- ```
134
-
135
- ### Step 5: Create Git Tag
136
-
137
- ```bash
138
- # Create annotated tag with changelog excerpt
139
- git tag -a v0.17.0 -m "Release v0.17.0
140
-
141
- Added:
142
- - rtk pytest command (90% token reduction)
143
- - Support for uv package manager
144
-
145
- Fixed:
146
- - Shell escaping for PowerShell
147
- - Memory leak in regex caching
148
-
149
- Performance: <10ms startup, <5MB memory"
150
- ```
151
-
152
- ### Step 6: Push to Remote
153
-
154
- ```bash
155
- # Push commit and tags
156
- git push origin main
157
- git push origin v0.17.0
158
-
159
- # Trigger GitHub Actions release workflow
160
- # (CI/CD will build binaries, create GitHub release, publish to crates.io if configured)
161
- ```
162
-
163
- ## Post-Release Verification
164
-
165
- After pushing, verify:
166
-
167
- ### 1. GitHub Actions CI/CD Pass
168
- ```bash
169
- # Check GitHub Actions workflow status
170
- gh run list --limit 1
171
-
172
- # Watch latest run
173
- gh run watch
174
- ```
175
-
176
- ### 2. GitHub Release Created
177
- ```bash
178
- # Check if release created
179
- gh release view v0.17.0
180
-
181
- # Should show:
182
- # - Release notes from git tag
183
- # - Binaries attached (macOS, Linux x86_64/ARM64, Windows)
184
- # - Checksums for verification
185
- ```
186
-
187
- ### 3. Installation Verification
188
- ```bash
189
- # Test installation from release
190
- curl -sSL https://github.com/rtk-ai/rtk/releases/download/v0.17.0/rtk-macos-latest -o rtk
191
- chmod +x rtk
192
- ./rtk --version
193
- # Should show v0.17.0
194
- ```
195
-
196
- ## Rollback Plan
197
-
198
- If release has critical issues:
199
-
200
- ### Option 1: Patch Release (Preferred)
201
- ```bash
202
- # Fix issue in new branch
203
- git checkout -b hotfix/v0.17.1
204
- # Apply fix
205
- cargo test --all
206
- git commit -m "fix: critical issue in pytest filter"
207
-
208
- # Release v0.17.1 (PATCH bump)
209
- # Follow release workflow above
210
- ```
211
-
212
- ### Option 2: Yank Release (crates.io only)
213
- ```bash
214
- # Yank broken version from crates.io
215
- cargo yank --vers 0.17.0
216
-
217
- # Users can't download yanked version, but existing installs work
218
- ```
219
-
220
- ### Option 3: Revert Tag (Last Resort)
221
- ```bash
222
- # Delete tag locally
223
- git tag -d v0.17.0
224
-
225
- # Delete tag on remote
226
- git push origin :refs/tags/v0.17.0
227
-
228
- # Delete GitHub release
229
- gh release delete v0.17.0 --yes
230
-
231
- # Revert commit
232
- git revert HEAD
233
- git push origin main
234
- ```
235
-
236
- ## Automated Release Script (Optional)
237
-
238
- Save as `scripts/ship.sh`:
239
-
240
- ```bash
241
- #!/bin/bash
242
- set -euo pipefail
243
-
244
- # Parse version argument
245
- if [ $# -ne 1 ]; then
246
- echo "Usage: $0 <version>"
247
- echo "Example: $0 0.17.0"
248
- exit 1
249
- fi
250
-
251
- NEW_VERSION=$1
252
-
253
- echo "🚀 Starting release workflow for v$NEW_VERSION"
254
-
255
- # 1. Quality checks
256
- echo "📦 Running quality checks..."
257
- cargo fmt --all --check
258
- cargo clippy --all-targets
259
- cargo test --all
260
-
261
- # 2. Update version
262
- echo "🔢 Updating version to $NEW_VERSION..."
263
- sed -i '' "s/^version = .*/version = \"$NEW_VERSION\"/" Cargo.toml
264
-
265
- # 3. Build
266
- echo "🔨 Building release binary..."
267
- cargo build --release
268
-
269
- # 4. Verify version
270
- echo "✅ Verifying version..."
271
- target/release/rtk --version | grep "$NEW_VERSION"
272
-
273
- # 5. Commit
274
- echo "💾 Committing version bump..."
275
- git add Cargo.toml Cargo.lock
276
- git commit -m "chore(release): bump version to v$NEW_VERSION
277
-
278
- Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"
279
-
280
- # 6. Tag
281
- echo "🏷️ Creating git tag..."
282
- git tag -a "v$NEW_VERSION" -m "Release v$NEW_VERSION"
283
-
284
- # 7. Push
285
- echo "🚢 Pushing to remote..."
286
- git push origin main
287
- git push origin "v$NEW_VERSION"
288
-
289
- echo "✅ Release v$NEW_VERSION shipped!"
290
- echo "Monitor CI/CD: gh run watch"
291
- ```
292
-
293
- **Usage**:
294
- ```bash
295
- chmod +x scripts/ship.sh
296
- ./scripts/ship.sh 0.17.0
297
- ```
298
-
299
- ## Release Frequency
300
-
301
- **Recommended cadence**:
302
- - **PATCH releases**: As needed for critical bugs (24h turnaround)
303
- - **MINOR releases**: Weekly or bi-weekly for new features
304
- - **MAJOR releases**: Quarterly or when breaking changes necessary
305
-
306
- ## Version History Reference
307
-
308
- Check version history:
309
- ```bash
310
- git tag -l "v*" # List all version tags
311
- git log --oneline --tags # Show commits with tags
312
- ```
313
-
314
- Example output:
315
- ```
316
- v0.17.0 (HEAD -> main, tag: v0.17.0, origin/main)
317
- v0.16.0
318
- v0.15.1
319
- v0.15.0
320
- ```
321
-
322
- ## Common Issues
323
-
324
- ### Issue: CI/CD Fails After Tag Push
325
-
326
- **Symptom**: GitHub Actions workflow fails on release build
327
-
328
- **Solution**:
329
- ```bash
330
- # Fix issue locally
331
- git checkout main
332
- # Apply fix
333
- cargo test --all
334
- git commit -m "fix: CI/CD build issue"
335
- git push origin main
336
-
337
- # Delete old tag
338
- git tag -d v0.17.0
339
- git push origin :refs/tags/v0.17.0
340
-
341
- # Create new tag
342
- git tag -a v0.17.0 -m "Release v0.17.0 (rebuild)"
343
- git push origin v0.17.0
344
- ```
345
-
346
- ### Issue: Version Mismatch
347
-
348
- **Symptom**: `rtk --version` shows old version after bump
349
-
350
- **Solution**:
351
- ```bash
352
- # Cargo.lock might be out of sync
353
- cargo update -p rtk
354
- cargo build --release
355
-
356
- # Verify
357
- target/release/rtk --version
358
- ```
359
-
360
- ### Issue: Changelog Merge Conflict
361
-
362
- **Symptom**: CHANGELOG.md has conflicts after rebase
363
-
364
- **Solution**:
365
- ```bash
366
- # Always add new entries at top
367
- # Manual merge:
368
- # 1. Keep all entries from both branches
369
- # 2. Sort by version (newest first)
370
- # 3. Ensure date format consistency
371
- ```
372
-
373
- ## Security Considerations
374
-
375
- **Before releasing**:
376
- - [ ] No secrets in code (API keys, tokens)
377
- - [ ] No `.env` files committed
378
- - [ ] Dependencies scanned (`cargo audit`)
379
- - [ ] Shell injection vulnerabilities reviewed
380
- - [ ] Cross-platform shell escaping tested
381
-
382
- **Dependency audit**:
383
- ```bash
384
- cargo install cargo-audit
385
- cargo audit
386
-
387
- # Example output:
388
- # Crate: some-crate
389
- # Version: 0.1.0
390
- # Warning: vulnerability found
391
- # Advisory: CVE-2024-XXXXX
392
- ```
393
-
394
- If vulnerabilities found:
395
- ```bash
396
- # Update vulnerable dependency
397
- cargo update some-crate
398
-
399
- # Verify fix
400
- cargo audit
401
-
402
- # Re-run quality checks
403
- cargo test --all
404
- ```
@@ -1,34 +0,0 @@
1
- name: Benchmark Token Savings
2
-
3
- on:
4
- push:
5
- branches: [master, main]
6
- pull_request:
7
-
8
- jobs:
9
- benchmark:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v4
13
-
14
- - name: Install Rust
15
- uses: dtolnay/rust-toolchain@stable
16
-
17
- - name: Build rtk
18
- run: cargo build --release
19
-
20
- - name: Install Python tools
21
- run: |
22
- pip install ruff pytest
23
-
24
- - name: Install Go
25
- uses: actions/setup-go@v5
26
- with:
27
- go-version: 'stable'
28
-
29
- - name: Install Go tools
30
- run: |
31
- go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
32
-
33
- - name: Run benchmark
34
- run: ./scripts/benchmark.sh
@@ -1,12 +0,0 @@
1
- name: DCO Check
2
-
3
- on:
4
- workflow_dispatch:
5
- pull_request:
6
- branches:
7
- - develop
8
- jobs:
9
- check:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: KineticCafe/actions-dco@v1
@@ -1,51 +0,0 @@
1
- name: Release Please
2
-
3
- on:
4
- push:
5
- branches:
6
- - master
7
-
8
- permissions:
9
- contents: write
10
- pull-requests: write
11
-
12
- jobs:
13
- release-please:
14
- runs-on: ubuntu-latest
15
- outputs:
16
- release_created: ${{ steps.release.outputs.release_created }}
17
- tag_name: ${{ steps.release.outputs.tag_name }}
18
- steps:
19
- - uses: googleapis/release-please-action@v4
20
- id: release
21
- with:
22
- release-type: rust
23
- package-name: rtk
24
-
25
- build-release:
26
- name: Build and upload release assets
27
- needs: release-please
28
- if: ${{ needs.release-please.outputs.release_created == 'true' }}
29
- uses: ./.github/workflows/release.yml
30
- with:
31
- tag: ${{ needs.release-please.outputs.tag_name }}
32
- permissions:
33
- contents: write
34
- secrets: inherit
35
-
36
- update-latest-tag:
37
- name: Update 'latest' tag
38
- needs: [release-please, build-release]
39
- if: ${{ needs.release-please.outputs.release_created == 'true' }}
40
- runs-on: ubuntu-latest
41
- steps:
42
- - uses: actions/checkout@v4
43
- with:
44
- fetch-depth: 0
45
-
46
- - name: Update latest tag
47
- run: |
48
- git config user.name "github-actions[bot]"
49
- git config user.email "github-actions[bot]@users.noreply.github.com"
50
- git tag -fa latest -m "Latest stable release (${{ needs.release-please.outputs.tag_name }})"
51
- git push origin latest --force