Skip to content

feat(extension): offer "Connect Now" after saving a connection profile#247

Merged
deffenda merged 3 commits into
mainfrom
claude/fervent-mccarthy-Y4wsV
May 31, 2026
Merged

feat(extension): offer "Connect Now" after saving a connection profile#247
deffenda merged 3 commits into
mainfrom
claude/fervent-mccarthy-Y4wsV

Conversation

@deffenda
Copy link
Copy Markdown
Collaborator

@deffenda deffenda commented May 31, 2026

What

Improves the first-run onboarding flow. After a profile is saved in the connection wizard, the extension now surfaces a native Connect Now toast and dispatches FileMaker: Connect with the freshly-saved profile when the user accepts. Editing an existing profile offers Reconnect now instead.

Why

Previously the wizard ended at "Profile saved. Use FileMaker: Connect to start a session." — leaving the user to discover and run the connect command themselves. That handoff was the single biggest gap in the onboarding path between creating a profile and seeing data. The wizard already knew the profile id; this just wires the obvious next step.

How

  • ConnectionWizardPanel.handleSave calls a new offerConnect(profile, isNewProfile) after a successful save.
  • The offer is fire-and-forget and non-fatal: the profile is already persisted, so a dismissed toast or a failed connect leaves the user able to connect later from the sidebar or Command Palette. Errors are logged via the existing logger.
  • The connect command resolves its profile from a { profileId } arg, so the saved id is handed in directly — no new plumbing.

Docs & tests

  • Updated the Getting Started walkthrough (test-connect.md) and the v1.1.0 QA smoke test (SC-09) to describe the new flow.
  • Added connectionWizardConnectOffer.test.ts covering three paths: the offer is shown after save, accepting dispatches connect with the profile id, and dismissing does nothing.
  • Added a CHANGELOG entry under Unreleased.

CI unblock (2nd commit)

The first CI run surfaced three pre-existing failures inherited from dependabot bump #245 (the commit this branch was based on, which raised TypeScript to ^6.0.3 and @types/vscode to ^1.120.0 without the accompanying updates) — none caused by the onboarding change. Fixed in a separate, clearly-scoped commit:

  • typecheck (extension): TS 6.0 deprecates moduleResolution: "node" (node10). Added "ignoreDeprecations": "6.0" to extension/tsconfig.json (TS's own recommended remedy) and to the inline node10 program in typeGenService.test.ts.
  • typecheck (designer-ui): TS 6.0 rejects import './styles.css' with no ambient declaration. Added designer-ui/src/css.d.ts (declare module '*.css') — type-only; esbuild handles bundling.
  • package:check: vsce refused because @types/vscode ^1.120.0 exceeds engines.vscode ^1.96.0. Pinned @types/vscode to ~1.96.0 so the types track the minimum supported VS Code; typecheck still passes, confirming no post-1.96 APIs are in use.

Validation

All CI steps pass locally: lint, typecheck, test:coverage (467 passed), build, package:check (VSIX 2.36 MB, under the 5 MiB budget), and npm audit --omit=dev --audit-level=high.

https://claude.ai/code/session_01FDrP6DntTQJogi7UvdmbYq

The connection wizard previously left first-run users at "Profile saved.
Use FileMaker: Connect to start a session" — they had to discover and run
the connect command themselves, the single biggest gap in the onboarding
flow between creating a profile and seeing data.

The wizard now surfaces a native "Connect Now" toast right after a
successful save and dispatches FileMaker: Connect with the freshly-saved
profile id when accepted. Editing an existing profile offers "Reconnect
now" instead. The action is fire-and-forget and non-fatal: the profile is
already persisted, so a dismissed toast or a failed connect leaves the
user able to connect later from the sidebar or Command Palette.

Updates the getting-started walkthrough and v1.1.0 smoke test to describe
the new flow, and adds a behavioral unit test covering the offer, the
accept-dispatch path, and the dismiss path.

https://claude.ai/code/session_01FDrP6DntTQJogi7UvdmbYq
@gemini-code-assist
Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@github-actions
Copy link
Copy Markdown

Auto-merge gate failed: ci_green

7 required check(s) still pending on 2317841; will retry on next check_suite event.

@github-actions
Copy link
Copy Markdown

Auto-merge gate failed: draft

PR is a draft. Set the pull request to Ready for review to enable auto-merge.

@github-actions
Copy link
Copy Markdown

Auto-merge gate failed: linked_issue

PR body must contain 'Closes/Fixes/Resolves #N' or carry the 'chore:trivial' label.

@github-actions
Copy link
Copy Markdown

Auto-merge gate failed: trusted_author

trusted_author_file '.github/auto-merge-allowed-authors' not found on base ref 'main'.

claude added 2 commits May 31, 2026 00:40
The dependabot dev-dependencies bump (#245, the commit this branch was
based on) raised TypeScript to ^6.0.3 and @types/vscode to ^1.120.0
without the accompanying source/config updates, leaving three CI steps
red on the branch the moment a PR ran them:

- typecheck: TS 6.0 deprecates moduleResolution "node" (node10). Added
  "ignoreDeprecations": "6.0" to extension/tsconfig.json (the value TS's
  own error message recommends) and to the inline node10 program in
  typeGenService.test.ts that drives the generated-code diagnostics assert.
- typecheck (designer-ui): TS 6.0 rejects the side-effect `import
  './styles.css'` with no ambient declaration. Added designer-ui/src/css.d.ts
  declaring `*.css` — type-only; esbuild handles the real bundling.
- package:check: vsce refuses because @types/vscode ^1.120.0 exceeds
  engines.vscode ^1.96.0. Pinned @types/vscode to ~1.96.0 so the types
  track the minimum supported VS Code; typecheck still passes, confirming
  no post-1.96 APIs are in use.

Verified locally: lint, typecheck, test:coverage (467 passed), build,
package:check (VSIX 2.36 MB, under the 5 MiB budget), and
`npm audit --omit=dev --audit-level=high` all pass.

https://claude.ai/code/session_01FDrP6DntTQJogi7UvdmbYq
Root cause of the build-test failure on PR #247: `vitest` is declared by
two workspaces (extension + runtime-next), so npm hoists it to the repo
root node_modules. `@vitest/coverage-v8` was declared only by extension,
so npm nested it under extension/node_modules. When the hoisted root
`vitest` dynamically imports its coverage provider, Node resolves from the
root and cannot find the nested package — `test:coverage` dies with
ERR_MODULE_NOT_FOUND on every clean install (reproduced locally with a
from-scratch `npm install`; an earlier --no-save install had masked it).

Fix: declare @vitest/coverage-v8 in the root package.json devDependencies
so it installs alongside the hoisted vitest and the dynamic import
resolves. The extension keeps its own declaration (it owns the
test:coverage script); npm dedupes to a single root install.

Validation on a clean `rm -rf **/node_modules && npm install` tree:
audit (--omit=dev --audit-level=high), lint, typecheck, test:coverage
(467 passed), build, and package:check (VSIX 2.36 MB, under the 5 MiB
budget) all pass.

https://claude.ai/code/session_01FDrP6DntTQJogi7UvdmbYq
@deffenda deffenda marked this pull request as ready for review May 31, 2026 01:26
Copilot AI review requested due to automatic review settings May 31, 2026 01:26
@gemini-code-assist
Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@deffenda deffenda merged commit 71a09c9 into main May 31, 2026
14 checks passed
@deffenda deffenda deleted the claude/fervent-mccarthy-Y4wsV branch May 31, 2026 01:27
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

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.

3 participants