Skip to content

feat(slides): add native table creation#837

Merged
steipete merged 1 commit into
mainfrom
clawsweeper/issue-openclaw-gogcli-824
Jun 18, 2026
Merged

feat(slides): add native table creation#837
steipete merged 1 commit into
mainfrom
clawsweeper/issue-openclaw-gogcli-824

Conversation

@steipete

Copy link
Copy Markdown
Collaborator

Summary

  • add gog slides table create for native tables with rows, columns, and an optional stable object ID
  • extend gog slides insert-text with paired zero-based --row / --col cell targeting and atomic --replace
  • add focused request, validation, zero-index, replace, and dry-run coverage
  • document the workflow, provider placement constraint, and generated command surface

This replaces #834 after the maintainer rewrite. It is the intentionally narrow first slice of #824. The issue remains open for row/column insertion and deletion, merge/unmerge, sizing, borders, and cell styling.

Design

Google's current Slides table recipe states that table creation ignores supplied size and transform fields. Live provider read-back confirmed this behavior, so the command omits misleading geometry flags and lets Slides choose initial placement and size.

Validation

  • go test ./internal/cmd -run 'TestSlides(Table|InsertText)'
  • make ci
  • final local autoreview: clean, no accepted/actionable findings
  • live disposable-deck proof: created a 2x3 native table; read back all six cells; wrote row 0 / column 0 and row 1 / column 2; atomically replaced only row 0 / column 0; verified the control cell remained unchanged
  • live empty-cell proof: replacement skipped the invalid empty delete; non-empty clear succeeded; repeated blank clear was a no-op; missing cells failed before write
  • dry-run proof contained only provider-supported create fields and made no API call
  • invalid unpaired cell coordinates failed before API access
  • disposable deck moved to trash and verified trashed

Credit

Thanks @sebsnyk for #824 and the requested command shape.

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
@steipete steipete added the clawsweeper:human-review ClawSweeper automerge is paused for maintainer review label Jun 18, 2026
@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor 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 18, 2026
@clawsweeper

clawsweeper Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

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

Summary
This PR adds gog slides table create, extends gog slides insert-text with zero-based table-cell targeting and replacement behavior, and updates focused tests plus command docs.

Reproducibility: not applicable. as a bug reproduction; this is a feature PR for a source-confirmed capability gap in the linked issue. Source inspection confirms current main lacks both the table subgroup and row/column cell targeting.

Review metrics: 2 noteworthy metrics.

  • Patch scope: 15 files, +863/-11. The feature spans command code, generated command docs, focused docs, tests, and release-note context.
  • Generated docs surface: 2 command pages added, 4 command references updated. The generated command reference is part of the shipped CLI surface for this feature.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #824
Summary: This PR is the active maintainer rewrite for the first implementation slice of the open native Slides table issue and supersedes the closed generated PR.

Members:

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

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

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

Next step before merge

  • [P2] The PR is collaborator-authored and labeled for human review, with no narrow automated repair left after this review.

Security
Cleared: The diff changes Go command/test code and docs; it does not touch dependencies, workflows, credentials, install paths, or secret handling.

Review details

Best possible solution:

Proceed with maintainer manual merge if the v1 scope is accepted, while keeping #824 open for row/column operations, merge/unmerge, sizing, borders, and cell styling.

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

Not applicable as a bug reproduction; this is a feature PR for a source-confirmed capability gap in the linked issue. Source inspection confirms current main lacks both the table subgroup and row/column cell targeting.

Is this the best way to solve the issue?

Yes. The PR is a narrow native Slides v1 that follows existing command patterns, documents provider placement constraints, covers the accepted blank-cell and revision-pin fixes, and leaves broader table operations to the linked issue.

AGENTS.md: found and applied where relevant.

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

Label changes

Label changes:

  • add P2: This is a normal-priority Slides capability improvement with a bounded command/docs/test surface and linked issue context.
  • add proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes live disposable-deck proof for table creation, cell read/write, atomic replacement, blank-cell handling, dry-run behavior, invalid coordinates, and cleanup.
  • add rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (logs): The PR body includes live disposable-deck proof for table creation, cell read/write, atomic replacement, blank-cell handling, dry-run behavior, invalid coordinates, and cleanup.

Label justifications:

  • P2: This is a normal-priority Slides capability improvement with a bounded command/docs/test surface and linked issue context.
  • rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (logs): The PR body includes live disposable-deck proof for table creation, cell read/write, atomic replacement, blank-cell handling, dry-run behavior, invalid coordinates, and cleanup.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes live disposable-deck proof for table creation, cell read/write, atomic replacement, blank-cell handling, dry-run behavior, invalid coordinates, and cleanup.
Evidence reviewed

Acceptance criteria:

  • [P1] go test ./internal/cmd -run 'TestSlides(Table|InsertText)'.
  • [P1] make ci.

What I checked:

  • Repository policy read: AGENTS.md was read fully; its PR review mode says to inspect PRs with gh pr view / gh pr diff without changing branches, which this review followed. (AGENTS.md:33, 21ca030ddbde)
  • Current main still lacks the table surface: Current main registers Slides commands without a table subgroup; a focused rg for the new table command symbols on main returned no matches. (internal/cmd/slides.go:17, 21ca030ddbde)
  • Current main still lacks cell targeting: Current main SlidesInsertTextCmd has only presentationId, objectId, text, insertion-index, and replace fields, with no row/column flags or TableCellLocation construction. (internal/cmd/slides_insert_text.go:18, 21ca030ddbde)
  • Latest release also lacks this surface: The v0.28.0 tag shows no Slides table subgroup and no row/column fields on insert-text, so the PR is not obsolete against the latest release. (internal/cmd/slides.go:17, 6bc67d7dd770)
  • Exact head adds table creation: PR head adds SlidesTableCreateCmd, validates presentation/slide/rows/cols, omits provider-ignored size and transform fields, verifies the target slide, and pins WriteControl.RequiredRevisionId when the presentation has a revision. (internal/cmd/slides_table.go:18, c1c865e7cd1e)
  • Exact head handles cell replacement safely: PR head reads the presentation for cell-targeted replace, rejects missing cells before batchUpdate, skips DeleteText for blank cells, and pins the write to the read revision when available. (internal/cmd/slides_insert_text.go:110, c1c865e7cd1e)

Likely related people:

  • steipete: Current-main blame and log history show Peter Steinberger on the Slides command registry, release import, structured introspection, and adjacent Slides command work that this PR extends. (role: recent area contributor; confidence: high; commits: 6bc67d7dd770, 32a6dddf8d86, 5ff811dcc498; files: internal/cmd/slides.go, internal/cmd/slides_insert_text.go, internal/cmd/slides_shared.go)
  • Chris Sanchez: Git history shows Chris Sanchez introduced the original Slides insert-text and replace-text command path whose object-only shape is extended here. (role: introduced behavior; confidence: high; commits: d047a0325f12; files: internal/cmd/slides.go, internal/cmd/slides_insert_text.go, internal/cmd/slides_replace_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.

@steipete
steipete merged commit c78e609 into main Jun 18, 2026
9 checks passed
@steipete

Copy link
Copy Markdown
Collaborator Author

Landed as c78e6092.

Maintainer validation:

  • focused table and cell-text tests passed
  • make lint and make ci passed; generated 652 command pages and docs coverage passed
  • final autoreview reported no accepted/actionable findings
  • live provider proof covered 2x3 table creation and read-back, row/column zero, independent control cells, non-empty replacement, empty-cell replacement, clearing, repeated blank-clear no-op, and missing-cell rejection
  • live read-back confirmed Google-selected table geometry, matching the documented omission of ignored create-time geometry flags
  • both disposable decks were verified trashed
  • all exact-head push and pull-request checks passed, including Windows

Thanks @sebsnyk for #824 and the command-shape guidance.

@clawsweeper

clawsweeper Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper 🐠 automerge status

This repair pass finished without changing the PR. ClawSweeper checked the branch and found no safe patch to push this time.

Executor outcome: no planned fix actions.
Worker summary: Current main is c02fdf7. The original repair target #834 is already closed and superseded by maintainer rewrite this PR, which merged as c78e609 and is present on current main. No repair branch, replacement PR, close, or merge action remains for this cluster; #824 stays open as the canonical issue for the remaining Slides table surface beyond the landed first slice.

Worker actions:

Nothing moved downstream from this pass: no branch update, replacement PR, merge, or re-review.

fish notes: reasoning high; reviewed against c1c865e.

Automerge progress:

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

Labels

clawsweeper:human-review ClawSweeper automerge is paused for maintainer review P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor 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