Repository navigation
v1.1.0 — UX, a11y, security, reliability
Major usability, accessibility, security, and reliability release.
Onboarding
- Added a first-run Getting Started walkthrough (Add Profile → Test Connection → Query Builder) with screenshots and clear action verbs.
- Added a dedicated activity-bar container with a FileMaker icon.
- Added a Welcome view that surfaces Add Connection Profile / Open Walkthrough when no profiles exist (previously the empty state was buried behind always-present Environment Sets / Jobs roots).
- Connection wizard restored: fixed a crash on load caused by a missing
<form id="wizardForm">wrapper. Save and Test Connection buttons are now reliably bound. - Connection wizard collapses advanced server fields (
API Base Path,API Version) under a<details>disclosure so first-time users see only what they need. - Connection wizard shows live progress during Test Connection with phase-by-phase status.
- Walkthrough id computed from
context.extension.idat runtime so a publisher rename can't silently break the walkthrough; the first-run flag is now only set after the walkthrough opens successfully.
Connection / Status
- Added a persistent
$(plug) FileMaker: <profile>status-bar item so you always know whether you're connected and to which profile. Click to open the Explorer. - Proactive session-token refresh in
fmClientkeeps long-running sessions alive without manual reconnect. - Exponential-backoff retry on transient login errors during Connect.
- Inline Test Connection result + save guard: badge shows untested / passed / failed / stale; configurable policy (
off/warn/block) controls whether saving without a recent test is allowed.
Errors & Recovery
- Error toasts now offer Retry / Edit Profile / Open Settings actions inline. Retry re-invokes the original command; Edit Profile reopens the wizard for the failing profile; Open Settings jumps to the relevant setting key.
- Structured error reports with the full request chain, redacted headers, and a one-click Copy as Bug Report action that produces a markdown report safe to paste into an issue.
- Graceful fallback in
secretStorewhen VS Code SecretStorage is unavailable (AES-256-GCM PBKDF2 envelope). - Offline-mode status-bar indicator with stale-cache awareness.
- Circuit-breaker registry plus Show Circuit Breaker Status command for diagnosing repeated failures.
Accessibility
- Connection wizard required fields now mark
aria-required, render a visible*, and link hints viaaria-describedbyso screen-reader users get full context. - Authentication mode toggle exposes proper
aria-pressedstate. - Password / username inputs include
autocompletehints. - Focus management: focus lands on the first input on open; Query Builder focuses the profile select after init.
Discoverability
- Command palette flood: ~33 commands gated behind context keys (
filemaker.hasProfiles,filemaker.hasSchemaSnapshots,filemaker.enterpriseMode,filemaker.advanced.powerUserMode). New users see only what's relevant; advanced/diagnostic commands stay hidden until needed. - Power-user mode setting unlocks plugin / circuit-breaker / diagnostics commands.
Settings
- Deduplicated
filemakerDataApiTools.*settings under the canonicalfilemaker.*namespace. Legacy keys now carrymarkdownDeprecationMessage; explicit values continue to be honored with a one-time deprecation toast pointing at the new key. - Validation:
filemaker.schema.hashAlgorithmis checked againstcrypto.getHashes()at activation; an unsupported value surfaces a toast instead of a silent fallback. - Declared
capabilities.untrustedWorkspacesso VS Code's built-in trust banner fires up front (instead of bespoke command-level toasts).
Documentation
- Rewrote USER_GUIDE.md connection sections to match the actual webview UI (the previous copy described a quick-pick flow that no longer existed).
- Walkthrough markdown gained screenshots reused from the marketplace assets.
- Corrected an incorrect tip claiming profiles were workspace-scoped; profiles are global, only saved queries are workspace-scoped.
Security & Reliability
- Token-bucket rate limit plus per-session request budget on the FM bridge server.
- Profile cache keys versioned (
v2::) and include the normalizedserverUrlto prevent cross-profile cache poisoning. - Documented proxy threat model; minimized outbound profile payload.
- Structural validator for inbound webview messages.
Performance
- Replaced 59 per-command
activationEventswithonStartupFinishedand lazy command registration. batchExportFindnow streams CSV rows instead of buffering the entire result set.- Refactored
fmClientto extractSessionTokenTrackerfor clearer proactive-refresh state.
Tests
- New unit-test coverage for
schemaService,batchService, error-action selection, deprecated-setting tracking, command-resolution helpers, connection status bar, and webview structural assertions (catches the kind of HTML/JS mismatch that hid the wizard form bug).