Skip to content

feat: add sponsors command#824

Merged
jdx merged 2 commits into
mainfrom
codex/add-sponsors-cli-readme
Jun 2, 2026
Merged

feat: add sponsors command#824
jdx merged 2 commits into
mainfrom
codex/add-sponsors-cli-readme

Conversation

@jdx

@jdx jdx commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a sponsors command that acknowledges 37signals and links to the canonical en.dev sponsor pages
  • acknowledge 37signals in the root README

Verification

  • cargo check -q
  • cargo run -q -p aube --bin aube -- sponsors
  • cargo test -q test_cli_ordering

Note

Low Risk
Informational CLI output and README/docs only; no install, auth, or dependency behavior changes.

Overview
Adds a public aube sponsors command that prints sponsor acknowledgment for 37signals and a link to the full en.dev sponsor list. The implementation is a small Rust handler wired through the usual CLI surfaces (main, command modules, aube.usage.kdl, and generated CLI docs).

The root README gains a centered “Sponsored by 37signals” line with a link, matching the CLI messaging.

Reviewed by Cursor Bugbot for commit e02241c. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • New Features

    • Added a new sponsors CLI subcommand that displays sponsor information and links.
  • Documentation

    • Inserted a centered “Sponsored by 37signals” line near the top of the README.
    • Added CLI documentation pages and index entries for the new sponsors command.

@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 244cbf54-5458-43fc-916e-c806eac4ecfc

📥 Commits

Reviewing files that changed from the base of the PR and between e7d8ded and e02241c.

📒 Files selected for processing (5)
  • aube.usage.kdl
  • crates/aube/src/commands/sponsors.rs
  • docs/cli/commands.json
  • docs/cli/index.md
  • docs/cli/sponsors.md
✅ Files skipped from review due to trivial changes (3)
  • docs/cli/sponsors.md
  • docs/cli/index.md
  • docs/cli/commands.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • crates/aube/src/commands/sponsors.rs

📝 Walkthrough

Walkthrough

Adds a new sponsors CLI subcommand (implementation, CLI wiring, usage spec, and docs) and inserts a centered “Sponsored by 37signals” line in the README header.

Changes

Sponsors CLI Command

Layer / File(s) Summary
Sponsors command module and export
crates/aube/src/commands/sponsors.rs, crates/aube/src/commands/mod.rs
Adds SponsorsArgs and an async run that prints fixed sponsor information; registers pub mod sponsors;.
CLI command dispatch and usage spec
crates/aube/src/main.rs, aube.usage.kdl
Adds Sponsors variant to the Commands enum and dispatch handling in async_main; declares the sponsors command in the KDL usage spec.
CLI docs and catalog
docs/cli/commands.json, docs/cli/index.md, docs/cli/sponsors.md
Adds sponsors to the generated CLI commands JSON, inserts the index link, and creates the command documentation page.
README sponsorship notice
README.md
Inserts a centered "Sponsored by 37signals" line into the top header area of the README.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🐰 I hop in joy, a tiny cheer,
A sponsor line appears so near,
Commands aligned, docs in view,
Aube shines brighter — thanks to you! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'feat: add sponsors command' accurately describes the main change: adding a new CLI command for sponsors.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/add-sponsors-cli-readme

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps

greptile-apps Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds a new aube sponsors CLI subcommand that prints acknowledgment of 37signals and links to the en.dev sponsor pages, and updates the root README with a matching sponsor line.

  • New crates/aube/src/commands/sponsors.rs implements the command as a no-op arg struct with an async run function that prints to stdout.
  • main.rs, mod.rs, aube.usage.kdl, and all doc artifacts (commands.json, index.md, sponsors.md) are updated consistently and in correct alphabetical order.

Confidence Score: 5/5

Safe to merge — read-only stdout command with no auth, install, or dependency behavior changes.

All changes are additive and isolated: a single new command that only calls println!, wired correctly into the dispatch table, with consistent help text and docs across every artifact.

No files require special attention.

Important Files Changed

Filename Overview
crates/aube/src/commands/sponsors.rs New sponsors command — takes no args, prints sponsor info to stdout, correctly declared async for consistency with the rest of the command pattern.
crates/aube/src/main.rs Wires Sponsors variant into the Commands enum and dispatch table in correct alphabetical position between SetScript and Stage.
crates/aube/src/commands/mod.rs Adds pub mod sponsors; in the correct alphabetical position.
README.md Adds a centered sponsor acknowledgment for 37signals above the Why Try It section.
docs/cli/sponsors.md Generated doc page for the new sponsors command; consistent with other CLI doc pages.
aube.usage.kdl Adds sponsors entry to the usage spec in alphabetical order, with matching help text.
docs/cli/commands.json Adds sponsors command metadata; all fields consistent with other commands.
docs/cli/index.md Inserts sponsors into the command index between sbom and stage in alphabetical order.

Reviews (2): Last reviewed commit: "fix(sponsors): render cli docs" | Re-trigger Greptile

Comment on lines +7 to +9
println!(
"aube and the en.dev project family are sponsored by:\n\n 37signals - https://37signals.com\n\nView all sponsors: https://en.dev/sponsors.html\nSponsor en.dev: https://en.dev/sponsor.html"
);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The output string is packed onto a single long line with escape sequences, which makes it hard to read and edit. A raw string literal with proper line breaks is easier to maintain and visually matches the actual output.

Suggested change
println!(
"aube and the en.dev project family are sponsored by:\n\n 37signals - https://37signals.com\n\nView all sponsors: https://en.dev/sponsors.html\nSponsor en.dev: https://en.dev/sponsor.html"
);
println!(
"aube and the en.dev project family are sponsored by:\n\n 37signals - https://37signals.com\n\nView all sponsors: https://en.dev/sponsors.html\nSponsor en.dev: https://en.dev/sponsor.html"
);

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
crates/aube/src/commands/sponsors.rs (2)

7-9: 💤 Low value

Consider splitting the long string literal for better readability.

The current message spans over 170 characters in a single line, making it harder to read and maintain. Consider using a multi-line string or format macro.

♻️ Proposed refactor for readability
-    println!(
-        "aube and the en.dev project family are sponsored by:\n\n  37signals - https://37signals.com\n\nView all sponsors: https://en.dev/sponsors.html\nSponsor en.dev: https://en.dev/sponsor.html"
-    );
+    println!(
+        "aube and the en.dev project family are sponsored by:\n\n\
+         37signals - https://37signals.com\n\n\
+         View all sponsors: https://en.dev/sponsors.html\n\
+         Sponsor en.dev: https://en.dev/sponsor.html"
+    );
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/aube/src/commands/sponsors.rs` around lines 7 - 9, The println! call
in crates/aube/src/commands/sponsors.rs contains a very long single-line string;
split it into a multi-line literal or concatenated pieces for readability by
replacing the current println!( "...long string..." ) with a multi-line raw
string (e.g., r#"..."#) or multiple shorter string literals joined in the same
println! invocation, preserving the exact output and line breaks; target the
println! invocation in this file to implement the change.

6-11: Confirm sponsor URLs resolve (HTTP 200) and optionally improve output readability

All three hardcoded sponsor links currently return HTTP 200:

The long println! message could be reformatted/assembled for readability and maintainability.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/aube/src/commands/sponsors.rs` around lines 6 - 11, The hardcoded
sponsor URLs in the run(SponsorsArgs) function should be confirmed/resilient and
the printed message made more readable/maintainable: validate (or note) that the
three URLs (https://37signals.com, https://en.dev/sponsors.html,
https://en.dev/sponsor.html) return 200 and then replace the single long
println! with a clearer assembled message (e.g., build a const &str or multiline
raw string and/or join a Vec<&str> of lines before printing) so the output is
easy to maintain and edit; implement this change inside the run function to
preserve behavior but improve readability and future editability.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@crates/aube/src/commands/sponsors.rs`:
- Around line 7-9: The println! call in crates/aube/src/commands/sponsors.rs
contains a very long single-line string; split it into a multi-line literal or
concatenated pieces for readability by replacing the current println!( "...long
string..." ) with a multi-line raw string (e.g., r#"..."#) or multiple shorter
string literals joined in the same println! invocation, preserving the exact
output and line breaks; target the println! invocation in this file to implement
the change.
- Around line 6-11: The hardcoded sponsor URLs in the run(SponsorsArgs) function
should be confirmed/resilient and the printed message made more
readable/maintainable: validate (or note) that the three URLs
(https://37signals.com, https://en.dev/sponsors.html,
https://en.dev/sponsor.html) return 200 and then replace the single long
println! with a clearer assembled message (e.g., build a const &str or multiline
raw string and/or join a Vec<&str> of lines before printing) so the output is
easy to maintain and edit; implement this change inside the run function to
preserve behavior but improve readability and future editability.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 53a37bb3-a846-48bf-8cca-ec7ce66b8520

📥 Commits

Reviewing files that changed from the base of the PR and between 0ad3f35 and e7d8ded.

📒 Files selected for processing (4)
  • README.md
  • crates/aube/src/commands/mod.rs
  • crates/aube/src/commands/sponsors.rs
  • crates/aube/src/main.rs

@jdx jdx merged commit 33a8f46 into main Jun 2, 2026
19 checks passed
@jdx jdx deleted the codex/add-sponsors-cli-readme branch June 2, 2026 19:52
@greptile-apps greptile-apps Bot mentioned this pull request Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant