Commit 9a243c3
authored
* Document SDK gap blocking create-time client visibility (#457)
Basecamp (bc3 master) accepts a top-level visible_to_clients param at
create time, but the Go SDK's create-request types don't carry it, so the
CLI can't pass it without an out-of-lane SDK change. Record the required
SDK change (Smithy create inputs -> generated -> wrapper -> mapping) and
the CLI wiring that follows in SDK-GAP-457.md.
* Correct SDK gap handoff: flat message wire, tri-state *bool, defer docs/uploads
Address review of SDK-GAP-457.md:
- Fix message create contract: POST /message_boards/:board_id/messages.json
with a flat body; the visible_to_clients key is top-level.
- Require *bool tri-state (nil=inherit, true, false) end-to-end instead of
bool,omitempty, which drops explicit false; cite the AllDay precedent.
- Defer docs/uploads: they accept arbitrary folder IDs and nested vaults
inherit folder visibility (silent no-op), so gate or defer before wiring.
- Scope the verified gap to SDK v0.8.0; correct the lane-policy wording.
- Link SDK tracking issue basecamp/basecamp-sdk#395 as the unblocker.
* Refine SDK gap handoff: de-reference PR number, stable identifiers, link follow-ups
- Reference 'this PR' instead of a hard-coded PR number (drift-prone).
- Point at function/struct identifiers instead of line numbers (files.go,
schedules.go).
- Link deferred docs/uploads to CLI follow-up #556; note the SDK should still
expose those inputs for completeness (#395 covers all six) while the CLI
withholds only the flag.
- Clarify #457 closure sequencing (four-together vs messages-first).
* Make SDK gap internally consistent: all six inputs, correct wrappers, locked #457 boundary
- Requested SDK change now targets all six inputs in the implementation steps
(message, todolist, question, schedule entry, document, upload), matching the
surrounding completeness note; no more four-now/two-later contradiction.
- Gap evidence lists the six actual target wrappers (CreateMessageRequest,
CreateTodolistRequest, CreateQuestionRequest, CreateScheduleEntryRequest,
CreateDocumentRequest, CreateUploadRequest), not the unrelated card/todo/
comment structs.
- Lock #457 completion boundary to the four initial commands; messages-first
stays Refs #457 until all four are wired.
* Bump SDK to e2c1abea for create-time visible_to_clients
Advances the basecamp-sdk pin from v0.8.0 to v0.8.1-0.20260724184307-e2c1abea4aea
(basecamp-sdk#401), which adds a create-time visible_to_clients field to the six
create-request inputs and repins bc3 provenance.
The same bundle reshaped SearchMetadata: the Projects list was replaced by
RecordingSearchTypes / FileSearchTypes filter options. Adapt runSearchMetadata's
empty-check and summary to the new shape.
* feat(clients): add --visible-to-clients to create commands
Wire the SDK's create-time visible_to_clients field into the four create
commands where Basecamp accepts a top-level client-visibility param: messages,
todolists, check-in questions, and schedule entries. The flag is tri-state — set
req.VisibleToClients only when --visible-to-clients was provided (gate on
Flags().Changed, matching --subscribe), so omitting it preserves the server's
default and an explicit --visible-to-clients=false reaches the wire.
Single atomic create, no follow-up toggle. Parent-inherited types (cards, todos,
comments) are excluded — they ignore the create param and 403 on the toggle.
Docs/uploads are deferred to #556 (nested-vault folder inheritance needs gating).
Tests assert the create body for each command carries visible_to_clients for the
unset/true/false cases. Regenerate .surface and document the flag in SKILL.md.
Fixes #457
* Correct client-visibility help and search metadata text
Address review:
- Client-visibility help was unsafe for client-authenticated callers. The four
flag descriptions, inline comments, and SKILL.md claimed omission means
team-only, but the server forces client visibility for client callers (even an
explicit false is overridden). Document the context-dependent rule instead:
team-only when posting as a team member; client callers always client-visible.
- The SDK-bump adaptation left 'search metadata' describing 'available projects'
though it now returns recording/file filter types. Fix the command Short/Long
and add focused runSearchMetadata tests (filter-type summary; empty-response
usage error), which the search tests previously never exercised.
* Refine schedule visibility wiring and search readability
Address review:
- schedule create: thread visibleToClients as a parameter into
runScheduleCreate (matching the existing allDay pattern) instead of re-reading
the flag via GetBool and dropping its error. Consistent with the other three
create commands.
- search metadata: parenthesize the nil-or-both-empty guard for clarity.
- search_test: the transport's body field is a string, not a pointer — say
'empty body', not 'nil body'.
1 parent 763a5a1 commit 9a243c3
15 files changed
Lines changed: 482 additions & 17 deletions
File tree
- internal
- commands
- version
- skills/basecamp
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3504 | 3504 | | |
3505 | 3505 | | |
3506 | 3506 | | |
| 3507 | + | |
3507 | 3508 | | |
3508 | 3509 | | |
3509 | 3510 | | |
| |||
3773 | 3774 | | |
3774 | 3775 | | |
3775 | 3776 | | |
| 3777 | + | |
3776 | 3778 | | |
3777 | 3779 | | |
3778 | 3780 | | |
| |||
9568 | 9570 | | |
9569 | 9571 | | |
9570 | 9572 | | |
| 9573 | + | |
9571 | 9574 | | |
9572 | 9575 | | |
9573 | 9576 | | |
| |||
9978 | 9981 | | |
9979 | 9982 | | |
9980 | 9983 | | |
| 9984 | + | |
9981 | 9985 | | |
9982 | 9986 | | |
9983 | 9987 | | |
| |||
11206 | 11210 | | |
11207 | 11211 | | |
11208 | 11212 | | |
| 11213 | + | |
11209 | 11214 | | |
11210 | 11215 | | |
11211 | 11216 | | |
| |||
12448 | 12453 | | |
12449 | 12454 | | |
12450 | 12455 | | |
| 12456 | + | |
12451 | 12457 | | |
12452 | 12458 | | |
12453 | 12459 | | |
| |||
12990 | 12996 | | |
12991 | 12997 | | |
12992 | 12998 | | |
| 12999 | + | |
12993 | 13000 | | |
12994 | 13001 | | |
12995 | 13002 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
| 26 | + | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
| 271 | + | |
271 | 272 | | |
272 | 273 | | |
273 | 274 | | |
| |||
366 | 367 | | |
367 | 368 | | |
368 | 369 | | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
369 | 378 | | |
370 | 379 | | |
371 | 380 | | |
| |||
393 | 402 | | |
394 | 403 | | |
395 | 404 | | |
| 405 | + | |
396 | 406 | | |
397 | 407 | | |
398 | 408 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
149 | 238 | | |
150 | 239 | | |
151 | 240 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
263 | 263 | | |
264 | 264 | | |
265 | 265 | | |
| 266 | + | |
266 | 267 | | |
267 | 268 | | |
268 | 269 | | |
| |||
384 | 385 | | |
385 | 386 | | |
386 | 387 | | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
387 | 396 | | |
388 | 397 | | |
389 | 398 | | |
| |||
417 | 426 | | |
418 | 427 | | |
419 | 428 | | |
| 429 | + | |
420 | 430 | | |
421 | 431 | | |
422 | 432 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
301 | 301 | | |
302 | 302 | | |
303 | 303 | | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
304 | 370 | | |
305 | 371 | | |
306 | 372 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
409 | 409 | | |
410 | 410 | | |
411 | 411 | | |
| 412 | + | |
412 | 413 | | |
413 | 414 | | |
414 | 415 | | |
| |||
438 | 439 | | |
439 | 440 | | |
440 | 441 | | |
441 | | - | |
| 442 | + | |
442 | 443 | | |
443 | 444 | | |
444 | 445 | | |
| |||
457 | 458 | | |
458 | 459 | | |
459 | 460 | | |
| 461 | + | |
460 | 462 | | |
461 | 463 | | |
462 | 464 | | |
463 | 465 | | |
464 | | - | |
| 466 | + | |
465 | 467 | | |
466 | 468 | | |
467 | 469 | | |
| |||
534 | 536 | | |
535 | 537 | | |
536 | 538 | | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
537 | 547 | | |
538 | 548 | | |
539 | 549 | | |
| |||
0 commit comments