Skip to content

feat(cli): prepare sqlrooms publishing - #754

Merged
ilyabo merged 14 commits into
mainfrom
codex/sqlrooms-cli-publishing
Jun 22, 2026
Merged

ilyabo merged 14 commits into
mainfrom
codex/sqlrooms-cli-publishing

Conversation

@ilyabo

@ilyabo ilyabo commented Jun 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • rename the Python CLI package path/distribution to sqlrooms and gate experimental CLI/UI surfaces behind --experimental
  • harden Python packaging so the CLI UI is rebuilt, bundled, and verified in the wheel
  • add a cars smoke fixture, import-to-worksheet behavior, startup diagnostics, docs, and release smoke checks
  • require sqlrooms-server >=0.1.1 so local/PyPI installs resolve compatible DuckDB dependencies

Verification

  • corepack pnpm --filter sqlrooms-python build
  • uv build --all
  • uv run --project python --package sqlrooms pytest python/sqlrooms/tests/test_cli.py python/sqlrooms/tests/test_launcher.py
  • uv run --project python --package sqlrooms pytest python/sqlrooms/tests/test_launcher.py
  • corepack pnpm --filter sqlrooms-cli-app typecheck
  • corepack pnpm --filter @sqlrooms/utils test -- --runTestsByPath packages/utils/tests/filepaths.test.ts
  • local-wheel venv install from python/dist: sqlrooms==0.1.0 with sqlrooms-server==0.1.1
  • installed command smoke: sqlrooms --help and sqlrooms --no-open-browser ./smoke.duckdb
  • experimental smoke: --experimental, --experimental --experimental-sync, and expected --experimental-sync failure without --experimental

Summary by CodeRabbit

  • New Features
    • Added --experimental and --experimental-sync flags to enable preview-only experimental UI/artifacts.
    • Loading local files now auto-creates a worksheet and its related data table.
  • Bug Fixes
    • Legacy --sync is rejected; --experimental-sync requires --experimental.
    • /api/config now reports experimentalEnabled and no longer includes a top-level API key.
  • Documentation
    • Updated guides and bundled UI/static paths to use sqlrooms.
  • Chores
    • CI now builds the UI bundle, then builds wheels, and verifies the resulting wheel contents.

@coderabbitai

coderabbitai Bot commented Jun 22, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Introduces an experimentalEnabled feature flag sourced from Python server runtime config that gates CLI artifact types, AI agent tools, and worksheet block renderers. Adds a canCreate field to ArtifactTypeDefinition for read-only artifact surfaces. Renames the Python package from sqlrooms-cli to sqlrooms across all scripts, deploy tooling, and documentation. Adds a wheel verification script and updates CI to build the UI bundle before Python packages.

Changes

experimentalEnabled flag, canCreate artifact contract, and sqlrooms-cli → sqlrooms rename

Layer / File(s) Summary
canCreate flag in artifacts package contract
packages/artifacts/src/ArtifactTypes.ts, packages/artifacts/src/artifactWorkspace.tsx, packages/artifacts/README.md
Adds optional canCreate?: boolean to ArtifactTypeDefinition; introduces canCreateArtifactType/getCreatableArtifactTypes helpers; tightens createArtifact guard to reject types with canCreate: false; useArtifactWorkspace now returns only creatable types.
FeatureStability classification and createCliArtifactTypes factory
apps/sqlrooms-cli-ui/src/statefulBlockArtifactConfigs.ts, apps/sqlrooms-cli-ui/src/artifactTypes.tsx
Adds FeatureStability type and stability field to StatefulBlockArtifactConfig, classifies each block as stable or experimental, filters createStatefulBlockTypes/createStatefulBlockCommandTypes by experimentalEnabled; replaces static ARTIFACT_TYPES constant with createCliArtifactTypes({ experimentalEnabled }) factory that uses withStability to conditionally disable canCreate and lifecycle handlers.
Store wiring and runtime config
apps/sqlrooms-cli-ui/src/runtimeConfig.ts, apps/sqlrooms-cli-ui/src/store.ts, apps/sqlrooms-cli-ui/src/layout.tsx
Removes apiKey from RuntimeConfig and adds experimentalEnabled; exports experimentalEnabled from store.ts and uses it to conditionally configure createMosaicDashboardSlice, command registration, createLayout, and createArtifactsSlice; passes cliArtifactTypes into layout creation.
UI rendering: artifact types and worksheet placeholders
apps/sqlrooms-cli-ui/src/workspace/ArtifactsContainerPanel.tsx, apps/sqlrooms-cli-ui/src/workspace/WorksheetArtifact.tsx
ArtifactsContainerPanel derives icons/types from artifactActions.artifactTypes instead of static ARTIFACT_TYPES; WorksheetArtifact swaps experimental block types for an ExperimentalStatefulBlockPlaceholder renderer based on experimentalEnabled.
AI agent tool gating by experimentalEnabled
apps/sqlrooms-cli-ui/src/createDashboardAgent.ts, apps/sqlrooms-cli-ui/src/createWorksheetAgent.ts
dashboardAgentTool gains deckMapsEnabled flag and conditionally returns the deck-maps or standard variant; worksheetAgentTool gains experimentalEnabled and gates the dashboard agent variant and embedded_html_app_agent extra tool; store wiring updated accordingly.
File loader: auto-create worksheet and data-table blocks on import
apps/sqlrooms-cli-ui/src/components/useLocalFileLoader.ts, packages/utils/__tests__/filepaths.test.ts
Adds getCurrentOrFirstWorksheetId and ensureImportWorksheetForTable helpers that select or create a worksheet artifact and append a data-table stateful block for each newly loaded table after refreshTableSchemas succeeds; adds unit test for convertToUniqueColumnOrTableName.
Dashboard commands: conditional artifact creation
apps/sqlrooms-cli-ui/src/createDashboardCommands.ts
Refactors createDashboardCommands to accept artifactTypes configuration; filters creatable artifact types via canCreateArtifactType helper; dynamically generates artifact create commands instead of hardcoding.
Python CLI: --experimental and --experimental-sync flags
python/sqlrooms/sqlrooms/cli.py
Adds --experimental and --experimental-sync CLI options; hides and rejects the legacy --sync flag; enforces that --experimental-sync requires --experimental; passes experimental_enabled into SqlroomsHttpServer; adds RuntimeError handling with proper error output.
Python launcher: experimentalEnabled propagation
python/sqlrooms/sqlrooms/web/launcher.py
SqlroomsHttpServer gains experimental_enabled parameter; adds experimentalEnabled to /api/config response; removes apiKey from top-level payload; changes crdtRoomId prefix from sqlrooms-cli: to sqlrooms:; refactors URL normalization helpers; improves UI availability assertions with branched error handling.
Connector install commands
python/sqlrooms/sqlrooms/web/db_bridge/connectors/postgres.py, python/sqlrooms/sqlrooms/web/db_bridge/connectors/snowflake.py
Updates Postgres and Snowflake dependency install command templates to reference sqlrooms[postgres]/sqlrooms[snowflake] and uvx --from sqlrooms instead of sqlrooms-cli equivalents.
Python CLI and launcher tests
python/sqlrooms/tests/test_cli.py, python/sqlrooms/tests/test_launcher.py
Adds tests for --experimental/--experimental-sync flag visibility and behavior; verifies rejection of legacy --sync; extends /api/config assertions for experimentalEnabled; adds URL normalization, startup failure, upload sanitization, and CSV import validation tests; verifies apiKey handling and namespace restrictions.
Python package rename: sqlrooms-cli → sqlrooms
python/pyproject.toml, python/sqlrooms/package.json, python/sqlrooms/pyproject.toml, python/sqlrooms-server/package.json
Removes sqlrooms-cli from uv workspace members; removes python/sqlrooms-cli/package.json; adds python/sqlrooms/package.json with sqlrooms-python scripts; updates package descriptions and sqlrooms-server dependency to >=0.1.1.
Dev and deploy scripts
python/sqlrooms/scripts/dev.mjs, scripts/dev.mjs, scripts/deploy-sqlrooms-cli-to-sprite.sh
Updates dev script aliases and working directories from sqlrooms-cli-python to sqlrooms-python; changes temp DB filename prefix; updates deploy script defaults from sqlrooms-cli to sqlrooms naming; builds sqlrooms-wheels.tgz from python/sqlrooms; discovers sqlrooms-*.whl instead of sqlrooms_cli-*.whl; replaces --sync with --experimental-sync in sync argument construction.
CI: UI build, Python packages, and wheel verification
.github/workflows/pr-checks-python.yml, python/sqlrooms/scripts/verify_wheel.py
Adds apps/sqlrooms-cli-ui/** to workflow path triggers; inserts Node 24/pnpm setup and install steps; replaces bare uv build --all with three-stage build: pnpm UI build → Python packages → wheel verification; verify_wheel.py validates wheel contains sqlrooms/web/static/index.html, bundled assets, and no dev-only paths.
Documentation updates: READMEs
apps/sqlrooms-cli-ui/README.md, python/sqlrooms/README.md, python/README.md, dev-docs/contributing/python.md
Replaces sqlrooms-cli references with sqlrooms in workspace members, bundle paths, and dev instructions; documents new --experimental/--experimental-sync flags; adds dev database naming guidance; updates developer setup and persistence documentation.
Documentation updates: roadmap and deployment
dev-docs/roadmaps/sqlrooms-cli-first-launch.md, docs/deployment-scenarios.md
Updates roadmap Goal/Current State/Milestones/Open Questions to reflect sqlrooms as the primary distribution; updates packaging scope and smoke test commands; updates deployment scenario section to reference sqlrooms for local backend setup.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • sqlrooms/sqlrooms#634: Further modifies the dashboard AI plumbing, particularly apps/sqlrooms-cli-ui/src/createDashboardAgent.ts and apps/sqlrooms-cli-ui/src/store.ts, extending the tool wiring patterns introduced here.
  • sqlrooms/sqlrooms#654: Complements the deck-map dashboard agent tooling gating by adding the underlying deck-map AI tools that are conditionally registered via deckMapsEnabled.
  • sqlrooms/sqlrooms#741: Refactors ArtifactsContainerPanel to build rendering from artifactTypes; this PR extends that pattern by switching from the static ARTIFACT_TYPES constant to the dynamic artifactActions.artifactTypes map.

Suggested reviewers

  • dmitriy-kostianetskiy

Poem

🐇 Hop, hop, the CLI name's reborn,
sqlrooms-cli sheds its worn old horn.
The experimental flag now guards the gate,
stable blocks render, experimental ones wait.
A wheel verified, the CI complete—
This bunny's work is tidy and neat! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 5.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 title 'feat(cli): prepare sqlrooms publishing' clearly summarizes the main objective of the PR, which is to prepare the sqlrooms CLI package for public release.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/sqlrooms-cli-publishing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d24d9021be

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

DOCUMENT_COMMAND_OWNER,
createDocumentCommands<RoomState>(),
);
if (experimentalEnabled) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Gate experimental artifact creation commands

This only gates the document command owner, but createDashboardCommands() registered just above still includes per-type create commands such as pivot.create-artifact, notebook.create-artifact, html-app.create-artifact, canvas.create-artifact, and app.create-artifact. Those commands call state.artifacts.createArtifact directly rather than the new canCreate path, so command palette or AI command execution can still create experimental artifacts when --experimental is not enabled; split or filter those commands based on experimentalEnabled.

Useful? React with 👍 / 👎.

):
"""
Start the SQLRooms local experience:
Launch a local SQLRooms project for adding data and building worksheets with Mosaic charts and dashboards.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Align the CLI help text with the test

Changing the callback docstring changes Typer's --help output to start with “Launch…”, but python/sqlrooms/tests/test_cli.py::test_cli_help still asserts the old “Start the SQLRooms local experience” text. I ran PYTHONPATH=python/sqlrooms pytest -q python/sqlrooms/tests/test_cli.py::test_cli_help, and it fails on that assertion, so the Python PR checks will fail until the test expectation or help text is updated.

Useful? React with 👍 / 👎.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 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.

Inline comments:
In @.github/workflows/pr-checks-python.yml:
- Around line 32-38: Replace the tag-based action references in the GitHub
Actions workflow with full commit SHAs for improved supply chain security.
Specifically, update the pnpm/action-setup action (currently using `@v4`) and the
actions/setup-node action (currently using `@v6`) by replacing their version tags
with their corresponding full commit SHA hashes. This prevents the risk of tag
reassignment and ensures reproducible, immutable action references.

In `@python/sqlrooms/sqlrooms/web/launcher.py`:
- Around line 550-555: The _ui_url() method produces malformed IPv6 URLs because
IPv6 addresses must be enclosed in square brackets when combined with a port
number in a URL. Modify the _ui_url() method to check if _ui_host() returns an
IPv6 address (by detecting if it contains colons) and wrap it in square brackets
before constructing the URL, so that addresses like ::1 become [::1] in the
final URL.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6e799849-0e02-410b-960e-eb6ce401d392

📥 Commits

Reviewing files that changed from the base of the PR and between 71ebb96 and d24d902.

⛔ Files ignored due to path filters (3)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • python/sqlrooms/tests/fixtures/cars.csv is excluded by !**/*.csv
  • python/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (52)
  • .github/workflows/pr-checks-python.yml
  • apps/sqlrooms-cli-ui/README.md
  • apps/sqlrooms-cli-ui/src/artifactTypes.tsx
  • apps/sqlrooms-cli-ui/src/components/useLocalFileLoader.ts
  • apps/sqlrooms-cli-ui/src/createDashboardAgent.ts
  • apps/sqlrooms-cli-ui/src/createWorksheetAgent.ts
  • apps/sqlrooms-cli-ui/src/layout.tsx
  • apps/sqlrooms-cli-ui/src/runtimeConfig.ts
  • apps/sqlrooms-cli-ui/src/statefulBlockArtifactConfigs.ts
  • apps/sqlrooms-cli-ui/src/store.ts
  • apps/sqlrooms-cli-ui/src/workspace/ArtifactsContainerPanel.tsx
  • apps/sqlrooms-cli-ui/src/workspace/WorksheetArtifact.tsx
  • dev-docs/contributing/python.md
  • dev-docs/roadmaps/sqlrooms-cli-first-launch.md
  • docs/deployment-scenarios.md
  • packages/artifacts/README.md
  • packages/artifacts/src/ArtifactTypes.ts
  • packages/artifacts/src/artifactWorkspace.tsx
  • packages/utils/__tests__/filepaths.test.ts
  • python/README.md
  • python/pyproject.toml
  • python/sqlrooms-cli/package.json
  • python/sqlrooms-server/package.json
  • python/sqlrooms/.gitignore
  • python/sqlrooms/LICENSE
  • python/sqlrooms/README.md
  • python/sqlrooms/cli
  • python/sqlrooms/knip.json
  • python/sqlrooms/package.json
  • python/sqlrooms/pyproject.toml
  • python/sqlrooms/scripts/dev.mjs
  • python/sqlrooms/scripts/verify_wheel.py
  • python/sqlrooms/sqlrooms/cli.py
  • python/sqlrooms/sqlrooms/web/__init__.py
  • python/sqlrooms/sqlrooms/web/db_bridge/__init__.py
  • python/sqlrooms/sqlrooms/web/db_bridge/connectors/__init__.py
  • python/sqlrooms/sqlrooms/web/db_bridge/connectors/base.py
  • python/sqlrooms/sqlrooms/web/db_bridge/connectors/postgres.py
  • python/sqlrooms/sqlrooms/web/db_bridge/connectors/snowflake.py
  • python/sqlrooms/sqlrooms/web/db_bridge/factory.py
  • python/sqlrooms/sqlrooms/web/db_bridge/registry.py
  • python/sqlrooms/sqlrooms/web/db_bridge/types.py
  • python/sqlrooms/sqlrooms/web/db_bridge/utils.py
  • python/sqlrooms/sqlrooms/web/launcher.py
  • python/sqlrooms/sqlrooms/web/ui.py
  • python/sqlrooms/tests/__init__.py
  • python/sqlrooms/tests/test_cli.py
  • python/sqlrooms/tests/test_db_bridge.py
  • python/sqlrooms/tests/test_launcher.py
  • python/sqlrooms/tests/test_ui_provider.py
  • scripts/deploy-sqlrooms-cli-to-sprite.sh
  • scripts/dev.mjs
💤 Files with no reviewable changes (1)
  • python/sqlrooms-cli/package.json

Comment thread .github/workflows/pr-checks-python.yml Outdated
Comment thread python/sqlrooms/sqlrooms/web/launcher.py

@coderabbitai coderabbitai Bot left a comment

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.

🧹 Nitpick comments (1)
apps/sqlrooms-cli-ui/src/createDashboardCommands.ts (1)

239-241: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick win

Add TSDoc for exported createDashboardCommands.

Line 239 exports a public function but it has no TSDoc; please document the artifactTypes option and default canCreate behavior.

Proposed patch
+/**
+ * Builds dashboard/workspace commands and conditionally exposes per-artifact
+ * create commands based on artifact capability flags.
+ *
+ * `@param` options.artifactTypes Optional capability map keyed by artifact type.
+ * A type is creatable unless `canCreate` is explicitly `false`.
+ */
 export function createDashboardCommands({
   artifactTypes,
 }: CreateDashboardCommandsOptions = {}): RoomCommand<RoomState>[] {

As per coding guidelines, "Add tsdoc to exported types and functions".

🤖 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 `@apps/sqlrooms-cli-ui/src/createDashboardCommands.ts` around lines 239 - 241,
The exported function `createDashboardCommands` on line 239 is missing TSDoc
documentation required by coding guidelines. Add a TSDoc comment block above the
function definition that documents the purpose of the function, describes the
`artifactTypes` parameter in the `CreateDashboardCommandsOptions` object, and
explains the default `canCreate` behavior. Follow standard TypeScript JSDoc
conventions with `@param` and `@returns` tags to clearly describe the function
signature and its behavior.

Source: Coding guidelines

🤖 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 `@apps/sqlrooms-cli-ui/src/createDashboardCommands.ts`:
- Around line 239-241: The exported function `createDashboardCommands` on line
239 is missing TSDoc documentation required by coding guidelines. Add a TSDoc
comment block above the function definition that documents the purpose of the
function, describes the `artifactTypes` parameter in the
`CreateDashboardCommandsOptions` object, and explains the default `canCreate`
behavior. Follow standard TypeScript JSDoc conventions with `@param` and `@returns`
tags to clearly describe the function signature and its behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 14b470a0-6c71-4cd4-81bd-a1b80b0c9223

📥 Commits

Reviewing files that changed from the base of the PR and between d24d902 and f2ef1c9.

📒 Files selected for processing (6)
  • .github/workflows/pr-checks-python.yml
  • apps/sqlrooms-cli-ui/src/createDashboardCommands.ts
  • apps/sqlrooms-cli-ui/src/store.ts
  • python/sqlrooms/sqlrooms/web/launcher.py
  • python/sqlrooms/tests/test_cli.py
  • python/sqlrooms/tests/test_launcher.py
🚧 Files skipped from review as they are similar to previous changes (3)
  • python/sqlrooms/tests/test_cli.py
  • .github/workflows/pr-checks-python.yml
  • apps/sqlrooms-cli-ui/src/store.ts

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d935020b77

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +80 to +81
onRename: undefined,
onDelete: undefined,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve lifecycle hooks for disabled artifacts

When a project already contains an experimental artifact and is reopened without --experimental, the placeholder artifact is still selectable and the topbar/sidebar still allow renaming or deleting it. Clearing these hooks means those actions update only the artifact registry: for example a pivot or html-app rename leaves the backing pivot/htmlApps title stale, and delete leaves orphaned backing state that reappears if the project is later opened with --experimental. Keep the rename/delete lifecycle hooks wired, or disable those actions for placeholder artifacts.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5a22dc03d6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

extraTools: () => ({
embedded_html_app_agent: htmlAppAgentTool(store),
}),
extraTools: () => {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Gate worksheet HTML-app block tools

In non---experimental sessions this only removes embedded_html_app_agent, but createWorksheetAgentTool() still registers its built-in add_html_app_block tool, whose implementation appends a blockType: 'html-app' stateful block. For worksheet app/D3/browser-app requests the agent can therefore still create experimental worksheet HTML-app blocks while the populate tool is absent, leaving a disabled placeholder/backing state despite the feature gate; the worksheet tool set or instructions need to be filtered as well.

Useful? React with 👍 / 👎.

@ilyabo
ilyabo merged commit 8245678 into main Jun 22, 2026
4 checks passed
@ilyabo
ilyabo deleted the codex/sqlrooms-cli-publishing branch June 22, 2026 09:49

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1ec0924222

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +50 to +54
const dashboardAgentTool = (
experimentalEnabled
? createDashboardAgentToolWithDeckMaps
: createDashboardAgentTool
)({

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Gate worksheet map routing with experimental flag

In non---experimental sessions this selects the plain Mosaic dashboard agent, but createWorksheetAgentTool still uses its default instructions/tool description that tell the worksheet agent to handle map/geospatial requests by adding or reusing a dashboard block and calling embedded_dashboard_agent. For a worksheet map request, the agent can therefore create a dashboard block and then lacks deck-map tools to populate it, leaving an empty or wrong block despite maps being feature-gated; pass a deck-map flag through the worksheet agent instructions or suppress worksheet map routing when experimentalEnabled is false.

Useful? React with 👍 / 👎.

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