Conversation
…lected" pytest -q emits the final summary without === wrappers. The parser only matched === prefixed lines, leaving summary_line empty and triggering the wrong "No tests collected" message. - detect bare summary lines in quiet mode (no === wrapper) - fix false "No tests collected" when only skipped tests exist - add 2 tests covering both cases Fixes #565 Signed-off-by: GokhanKabar <gokhankabar@hotmail.fr>
The previous --schema flag name implied output type rather than behavior. --keys-only is explicit: values are shown by default, this flag strips them. Closes #621 (json values now preserved by default; --keys-only is opt-in). Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
Adds a one-liner listing all supported ecosystems (ruff, pytest, pip, golangci-lint, etc.) in the Architecture section to satisfy the pre-push documentation validation script. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
Adds a new Claude Code skill that automates the batch review workflow for RTK pull requests, ordered by complexity (XS → S → M → L). For each PR the skill: - Verifies mergeable state, CLA, and existing reviews before reading - Reads the full diff and source context for non-trivial logic - Presents a structured summary (link, size, CLA, analysis, recommendation) - Waits for explicit user approval before any merge - Posts boldguy-adapt comments on blocked PRs (conflict, CLA, CHANGES_REQUESTED) - Tracks session results in a final recap table Includes templates for conflict/CLA/both comment scenarios, a conflict post-merge check (CHANGELOG.md, rules.rs, registry.rs, main.rs), and support for `from:<num>` to resume interrupted sessions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
The check compared `^mod ` count in main.rs (8 top-level modules) against the "Total: 64 modules" number in ARCHITECTURE.md, which are fundamentally different metrics and will never match. This caused all branches to fail the pre-push hook regardless of whether docs were actually out of sync. Also adds the missing ecosystems line to CLAUDE.md so the Python/Go commands check passes consistently on develop-based branches. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
All 8 .claude/skills/ files were missing effort, tags, and allowed-tools fields. Also added name field to issue-triage, pr-triage, and rtk-triage which had none. Effort levels inferred from content analysis. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
Two issues: 1. Module count compared top-level `mod` in main.rs (8) against "Total: 64 modules" in ARCHITECTURE.md -- incompatible metrics, always fails. Replaced with a simple .rs source file count (informational only). 2. CLAUDE.md check for Python/Go commands was too strict -- these commands belong in README.md (user-facing), not CLAUDE.md (Claude Code guidance). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
yadm is a dotfile manager that wraps git — same subcommands, same output format. Extending the git rule to also match `yadm` gives yadm users the same token savings without any extra CLI support. Closes #567
When `rtk gh pr list` or `rtk gh issue list` returns an empty array,
the header ("Pull Requests" / "Issues") is printed with nothing below
it. Display "No Pull Requests" / "No Issues" instead.
Closes #764
Fixes #968 Co-Authored-By: Claude <noreply@anthropic.com>
…rics Add 6 new fields to the anonymous daily telemetry ping to help identify which commands need filters and which filters need improvement: - passthrough_top: top 5 commands with 0% savings (missing filters) - parse_failures_24h: count of parse failures (filter fragility) - low_savings_commands: commands averaging <30% savings (weak filters) - avg_savings_per_command: unweighted average savings - hook_type: which AI agent hook is installed (claude/gemini/codex/etc) - custom_toml_filters: count of user-defined TOML filter files New tracking.rs queries: top_passthrough(), parse_failures_since(), low_savings_commands(), avg_savings_per_command(). Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu>
Extend the daily anonymous ping with product-piloting metrics: Retention: first_seen_days, active_days_30d, commands_total Ecosystem: ecosystem_mix (category distribution percentages) Economics: tokens_saved_30d, estimated_savings_usd_30d Config: has_config_toml, exclude_commands_count, projects_count Features: meta_usage (gain, discover, proxy, verify, learn counts) Update README.md privacy section with full field-by-field table explaining what is collected and why it helps improve RTK. Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu>
Comprehensive telemetry documentation covering: - Why we collect (roadmap prioritization, filter quality, value measurement) - How it works (daily ping, background thread, fire-and-forget) - Every field with example values and purpose - What is NOT collected (explicit exclusion list) - Opt-out instructions - Data handling and privacy guarantees - Contributor guide for adding new fields Link added from README.md privacy section. Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu>
Signed-off-by: Nicolas Le Cam <niko.lecam@gmail.com>
- Add support for pnpm global filter arguments (`--filter`) across all pnpm commands (`list`, `outdated`, `install`, etc.). - Merge pnpm filters with native command arguments (`--filter` + custom args like `--depth`). - Implement proper handling for `Vec<String>` (text filters) and `Vec<OsString>` (OS-specific filters). - Add unit tests for `merge_pnpm_args` and CLI parsing to validate expected behavior. This enables users to apply workspace-specific filtering directly via `--filter @scope` before running pnpm commands, reducing token overhead by excluding irrelevant packages/dependencies from output. Fixes: #259 FIXME: Add notes for typechecking/building with workspaces when filters are applied. Signed-off-by: Nicolas Le Cam <niko.lecam@gmail.com>
- Add validate_pnpm_filters() to warn when filters used with unsupported commands - Add comprehensive tests for all scenarios - Improve comments and use idiomatic rust Signed-off-by: Nicolas Le Cam <niko.lecam@gmail.com>
- Remove explicit PnpmCommands::Build variant (routed through Other) - Simplify filter validation for Typecheck only - Remove redundant warning eprintln!() call Signed-off-by: Nicolas Le Cam <niko.lecam@gmail.com>
Signed-off-by: Nicolas Le Cam <niko.lecam@gmail.com>
- Convert repo-recap, security-guardian, ship skills from flat .md to SKILL.md inside dedicated directories - Remove performance.md (no replacement needed) - Add cross-platform clip() helper in issue-triage and pr-triage skills (supports pbcopy, xclip, wl-copy) - Add argument-hint metadata to worktree command files - Update rust-rtk agent model from pinned ID to "sonnet" alias - Remove hardcoded absolute paths from diagnose.md - Add .rtk/filters.toml project-local filter config Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
Convert .claude/skills/performance.md to .claude/skills/performance/SKILL.md to match the same structure as repo-recap, security-guardian, and ship. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
Creates docs/README.md (interface contract defining 3-tab structure, required frontmatter, and conventions) and 4 stub pages with valid frontmatter for docs/guide/, docs/reference/, and docs/architecture/. These are the prerequisites for the prepare-docs.mjs pipeline (Plan B) and for Adrien's Phase 1 content work. No existing files modified. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
Creates the complete user-facing guide for the docs website: Getting started: - quick-start.md: 5-minute walkthrough (init, first commands, rtk gain) - supported-agents.md: Claude Code, Cursor, Copilot, Gemini, Cline, Windsurf, Codex, OpenCode — integration tiers, install commands, graceful degradation Commands (adapted from FEATURES.md, English, --help-first format): - git.md: status/log/diff/show/add/commit/push/pull/branch + gh CLI - cargo.md: test/nextest/build/check/clippy/install + generic test/err wrappers - files.md: ls/read/grep/find/diff/wc/smart with before/after examples - javascript.md: vitest/playwright/tsc/eslint/prettier/next/pnpm/npm/npx/prisma - python.md: pytest/ruff/mypy/pip/deps Reference: - filters/using-filters.md: 8-stage pipeline, lookup priority, TOML DSL reference, Mermaid diagram (adapted from docs/filter-workflow.md) - analytics/gain.md: rtk gain flags, daily/weekly/monthly breakdowns, export formats, token estimation, database management (from docs/AUDIT_GUIDE.md) - configuration.md: full config.toml reference, env vars, tee system, telemetry - troubleshooting.md: common issues and fixes (from docs/TROUBLESHOOTING.md) All pages carry valid frontmatter (title, description, sidebar.order). No existing files modified. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Florian BRUNIAUX <florian@bruniaux.com>
Normalize golangci-lint global flags before run during classification and keep them in rewritten commands. Add regression coverage for classify_command and rewrite_command with pre-run global flags.
Handle --flag=value forms consistently in both the runtime parser and discover rewrite logic. Add regression coverage for classify and rewrite paths using inline global flag values before run.
rtk find used WalkBuilder with .hidden(true), which skips ALL hidden files and directories. As a result, `rtk find . -name ".claude.json"` always returned "0 for '.claude.json'" even when the files existed. Fix: detect when the -name pattern starts with a dot and set .hidden(false) for that walk, so hidden entries are visited. Non-dotfile patterns keep the default .hidden(true) behaviour. Add regression tests covering both cases. Closes #1101 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ut trailing args (#1105) When glob_matches processed a pattern like "git -C * diff:*" (normalized to "git -C * diff *"), middle segment " diff " requires a trailing space to match. For "git -C /path diff" the remaining text is "/path diff" which ends with " diff" — no trailing space — so .find(" diff ") returned None and the command was incorrectly rejected. Fix: in the middle-segment branch, if the full substring search fails, also check if the remaining text ends with the trimmed (right-stripped) segment. This handles commands that terminate at the middle token with no trailing arguments. Add regression test covering the exact reproduction case from the issue. Closes #1105 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The global --ultra-compact flag used -u as its short form which caused `rtk git push -u origin <branch>` to silently consume -u as ultra-compact mode instead of forwarding it to git as --set-upstream. The push succeeded but the upstream tracking branch was never written to .git/config, causing subsequent plain `git push` calls to fail with "no upstream branch". Fixes #1086 Generated by Claude Code Vibe coded by ousamabenyounes Co-Authored-By: Claude <noreply@anthropic.com>
RTK v0.36.0 — Pre-Release Test ReportDate: 2026-04-13 Verdict: READY TO MERGEAll 1434 unit tests pass, all new features validated, all end-to-end tests green. Layer 0 — Build Quality Gate
Layer 1 — Install / Uninstall Cycle
Layer 2 — New/Changed Command Filters
Layer 3 — Init System (New Agents)
Layer 4 — Telemetry (RGPD/GDPR)
Layer 5 — TOML Filters
Layer 6 — Hook System
Layer 7 — End-to-End (Release Binary)
Issues Found1. Version mismatch in Cargo.toml — non-blockingPre-release binary reports 2.
|
pszymkowiak
left a comment
There was a problem hiding this comment.
ok — tested end-to-end in a Multipass Ubuntu 24.04 VM against develop @ f2985ac:
- 63/63 Rust binary filters PASS
- 47/59 TOML filters PASS (remaining SKIPs all justified: macOS-only, auth-required, or heavy daemons)
- 3 WARNs on upstream/distro bugs (markdownlint on Node 18 ICU, oxlint aarch64 binding, shellcheck 0.10 aarch64 segfault) — not RTK regressions
- rtk verify 145/145 green
- No routing failures, no shell-escape regressions, no blockers
LGTM. Leaving the merge to @aeppling.
|
All good to me, waiting if @FlorianBruniaux may be available, else we'll merge Thanks all contributors |
next release building
Summary
features:
Bug fix list below
Bug fix / issue resolved
ISSUE #948 resolved by PR #990
ISSUE #259 resolved by PR #270
ISSUE #602 resolved by PR #1141
ISSUE #621 resolved by PR #890
ISSUE #958 resolved by PR #959 and #1220