Skip to content

feat(slides): add structural table operations#847

Merged
steipete merged 2 commits into
mainfrom
feat/slides-table-structure
Jun 19, 2026
Merged

feat(slides): add structural table operations#847
steipete merged 2 commits into
mainfrom
feat/slides-table-structure

Conversation

@steipete

Copy link
Copy Markdown
Collaborator

Summary

  • add nested Slides table row and column insert/delete commands
  • add rectangular merge and unmerge commands
  • preflight provider dimensions and lock mutations to the fetched presentation revision
  • document the structural surface and extend the Slides live lifecycle

Testing

  • go test ./internal/cmd -run 'TestSlidesTable' -count=1
  • make ci
  • Slides live suite with [email protected]: create table, insert row/column, merge/read back, unmerge, delete row/column, read back, delete deck
  • independent Drive cleanup query: zero non-trashed gogcli-smoke-slides-* artifacts
  • Codex autoreview: clean, no accepted/actionable findings

Refs #824. Sizing, borders, and cell styling remain a separate follow-up slice.

@clawsweeper

clawsweeper Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 19, 2026, 5:29 AM ET / 09:29 UTC.

Summary
The PR adds gog slides table row/column insert/delete plus merge/unmerge commands, generated/user docs, focused unit coverage, and Slides live-test coverage.

Reproducibility: not applicable. as a bug reproduction. Source inspection confirms current main only has slides table create, while the linked issue still requests structural row/column and merge/unmerge operations.

Review metrics: 2 noteworthy metrics.

  • Diff size: 17 files changed, +1,140/-3. The patch spans command code, generated docs, user docs, tests, live-test coverage, and release-note context.
  • Structural commands: 6 leaf commands added. Row insert/delete, column insert/delete, merge, and unmerge are new user-facing CLI operations requiring command-contract review.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #824
Summary: This PR is a candidate implementation slice for the open native Slides table command-surface issue.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none.

Risk before merge

Maintainer options:

  1. Decide the mitigation before merge
    Review and land this structural Slides table slice if required checks pass, while keeping slides: no native table command surface (parallel to docs table tooling) #824 open for the remaining table styling and sizing work.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • No repair job is needed; this collaborator-authored feature PR should stay open for normal maintainer review and required checks.

Security
Cleared: No concrete security or supply-chain concern was found; the diff adds Go CLI command/test code, generated docs, user docs, and a live-test extension without new dependencies, workflows, or secret handling changes.

Review details

Best possible solution:

Review and land this structural Slides table slice if required checks pass, while keeping #824 open for the remaining table styling and sizing work.

Do we have a high-confidence way to reproduce the issue?

Not applicable as a bug reproduction. Source inspection confirms current main only has slides table create, while the linked issue still requests structural row/column and merge/unmerge operations.

Is this the best way to solve the issue?

Yes. Extending the existing gog slides table group with native Slides API requests, provider bounds checks, revision locking, docs, unit tests, and live coverage is the narrow maintainable path for this slice.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against eda03e04a4fb.

Label changes

Label justifications:

  • P2: This is a bounded user-facing Slides feature slice tied to an open P2 capability issue with limited blast radius.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (live_output): The PR body reports after-fix live Slides validation covering create, insert, merge, unmerge, delete, read-back checks, and Drive cleanup verification.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body reports after-fix live Slides validation covering create, insert, merge, unmerge, delete, read-back checks, and Drive cleanup verification.
Evidence reviewed

What I checked:

  • Repository policy read and applied: AGENTS.md was read in full; its PR-review guidance says to inspect with gh pr view and gh pr diff without switching branches, which this review followed. (AGENTS.md:34, eda03e04a4fb)
  • Current main lacks structural table commands: Current main's Slides table command only registers create, so the row, column, merge, and unmerge surface is not already implemented on main. (internal/cmd/slides_table.go:14, eda03e04a4fb)
  • PR adds the requested command surface: The PR head registers row, column, merge, and unmerge subcommands under the existing Slides table group. (internal/cmd/slides_table.go:14, 4fe482fdb937)
  • Mutation path validates provider state and locks revision: The shared mutation helper fetches the presentation, finds the target table, runs provider-dimension validation, and sets WriteControl.RequiredRevisionId before batchUpdate when available. (internal/cmd/slides_table_structure.go:280, 4fe482fdb937)
  • Focused tests cover request shape and provider checks: The new tests cover dry-run request construction, revision/write-control use, provider out-of-bounds rejection, and local validation failures. (internal/cmd/slides_table_structure_test.go:16, 4fe482fdb937)
  • Docs describe the new structural slice: The user docs document zero-based row/column operations, merge/unmerge, count limits, provider bounds checks, revision-locked writes, and destructive deletion behavior. (docs/slides-tables.md:30, 4fe482fdb937)

Likely related people:

  • steipete: Current-main blame and log history show Peter Steinberger introduced the existing Slides table create surface and recently authored adjacent Slides element/image command work that this PR extends. (role: recent area contributor; confidence: high; commits: c78e609203f9, 32a6dddf8d86, eda03e04a4fb; files: internal/cmd/slides_table.go, internal/cmd/slides.go, internal/cmd/slides_insert_text.go)
  • clawsweeper[bot]: Recent merged Slides command work on current main includes bot-authored scoped text and slide-structure commits sharing the command surface touched here. (role: adjacent automation contributor; confidence: medium; commits: a91ceadc8c31, 21ca030ddbde; files: internal/cmd/slides.go, internal/cmd/slides_insert_text.go)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P2 Normal priority bug or improvement with limited blast radius. labels Jun 19, 2026
@steipete
steipete merged commit 9f9c2ce into main Jun 19, 2026
11 checks passed
@steipete
steipete deleted the feat/slides-table-structure branch June 19, 2026 09:36
@steipete

Copy link
Copy Markdown
Collaborator Author

Landed as 9f9c2ce4.

Proof:

  • focused: go test ./internal/cmd -run 'TestSlidesTable' -count=1
  • local full gate: make ci
  • Codex autoreview: clean, no accepted/actionable findings
  • live Google Slides lifecycle with [email protected]: table create, row/column insert, merge and readback, unmerge, guarded row/column delete, final readback
  • cleanup: zero non-trashed gogcli-smoke-slides-* Drive artifacts
  • exact-head CI: all 11 checks green, including Linux, Windows, Darwin, Docker, and security

#824 remains open for the separate sizing, borders, and cell-style slice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant