Repository navigation
feat(projects): set and remove a project's logo - #974
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
🟢 Approved
No active review issues are reported for the project-logo CLI changes.
No open issues 🎉
What changed in this PR
Adds project-logo management to the CLI using the SDK support introduced in #973, alongside the existing wallpaper commands.
Changes:
- Adds
projects logo setandremove, sharing file validation and project read-back helpers with wallpaper. - Exposes logo state in project detail output.
- Adds command, presentation, and end-to-end coverage, plus documentation and agent guidance.
[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or rungh pr ready --undo.
Click "Ready for review" or rungh pr readyto reengage.
| File | Description |
|---|---|
skills/basecamp/SKILL.md |
Documents logo commands, permissions, and output. |
skill-evals/cases/project-logo.yml |
Adds an agent evaluation for setting a logo. |
internal/presenter/schemas/project.yaml |
Includes logo state in project details. |
internal/presenter/presenter_test.go |
Tests detail output with and without a logo. |
internal/presenter/format.go |
Formats an attached logo as “set.” |
internal/commands/projects.go |
Adds logo commands and shares image helpers. |
internal/commands/projects_logo_test.go |
Tests uploads, removal, validation, scope, and failures. |
internal/commands/commands.go |
Registers logo in the project action catalog. |
e2e/smoke/smoke_projects_write.bats |
Exercises logo changes while preserving wallpaper. |
e2e/projects.bats |
Tests logo help and argument validation. |
API-COVERAGE.md |
Records coverage of logo upload and removal endpoints. |
.surface |
Updates the command surface for logo commands and aliases. |
Review effort: Balanced
…ject images The size cap and the noun in its refusal become arguments, and the helpers lose their wallpaper names, so a project logo can use them as they are.
bc3#14174 gives a project a logo, the image beside its name, through
PUT and DELETE /projects/:id/logo.json, and SDK v0.30.0 wraps both.
They follow projects wallpaper: the file is checked for size (5 MB) and
image type before the upload, the project comes from --project, --in or
the default, and each command answers with the project read back, which
now carries .logo {url} when one is attached.
The logo's only field is a signed-in redirect URL, no use to read in a terminal, so the view says the logo is set and leaves the URL to JSON.
robzolkos
force-pushed
the
project-logo-cli
branch
from
October 28, 2026 04:44
86a605c to
9f577a0
Compare
Copilot
AI
dismissed their stale review, a newer Copilot review was requested
October 28, 2026 05:08
…roject-logo-cli * origin/card-moves-cross-project: refactor(commands): share the move and copy flow across recording types (#975) # Conflicts: # internal/commands/commands.go
robzolkos
added a commit
that referenced
this pull request
Oct 28, 2026
Lands the CLI moves stack as one change: - #973 cards move --to-project/--to-card-table, cards copy, wormhole moves answer the card's new id - #975 one shared move and copy flow for every recording type - #976 todos move --to-project/--to-list (bulk), todos copy, todolists and todolistgroups move/copy - #977 messages, Docs & Files (bulk, --to-folder), card table columns, schedule entries, check-in questions, email forwards, whole tools; basecamp filings show; a guard refusing container flags a move or copy would ignore - #974 projects logo set/remove Pins basecamp-sdk v0.31.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
basecamp/bc3#14174 lets API clients set and remove a project's logo, the image beside its name, and basecamp-sdk wraps it as of v0.30.0. The CLI has had no way to do either, which is what basecamp/basecamp-sdk#977 asks for.
What changed
basecamp projects logo set <file>uploads or replaces the logo. It takes PNG, JPEG, GIF, WebP, AVIF, HEIF or HEIC files up to 5 MB, and refuses any other type before uploading.basecamp projects logo removeremoves it, and succeeds when there's no logo.projects showreturnslogoin JSON, and the detail view says whether one is set.Scope
Verification
bin/cipasses.Summary by cubic
Adds
projects logo setandlogo removeso the CLI can set and remove a project's logo, which previously was only possible through the API.projects logo set <file>uploads or replaces the logo; accepts PNG, JPEG, GIF, WebP, AVIF, HEIF, or HEIC up to 5 MB and rejects other types before uploading.projects logo removeclears the logo and succeeds when the project has none.projects shownow returnslogoin JSON and the detail view reports whether a logo is set.card-moves-cross-projectbase branch.Written for commit 9dd0eba. Summary will update on new commits.