Skip to content

Version Packages#363

Merged
enyineer merged 1 commit into
mainfrom
changeset-release/main
Jun 26, 2026
Merged

Version Packages#363
enyineer merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Checkstack v0.117.0 Changelog

Minor Changes

  • feat(ai): add an onboarding playbook to the chat assistant

    When a monitoring-setup tool is in scope this turn (creating a system, proposing
    a health check, or managing environments), the chat system prompt now injects an
    onboarding section that steers the model to prefer the HTTP strategy for a URL,
    ask before guessing, create-and-assign a check in one step, and use environments
    instead of cloning a system per deployment stage. Like the automation playbook,
    it stays out of the always-on prompt on pure read turns.

    Packages: @checkstack/ai-backend

  • feat(ai): clickable answer options in chat (askOperator)

    Add an askOperator tool the assistant calls to ask a question with clickable
    answer chips (plus an optional free-text box) instead of a plaintext list.
    Clicking a chip sends that answer as the operator's next message. The chat
    renders the chips from a __question tool-output card, mirroring the existing
    confirm-card pattern, and calling the tool ends the turn (the operator's choice
    arrives as their next message).

    The system prompt now steers the model to use askOperator for discrete-choice
    clarifications (which system, which protocol, how often, which environment),
    reserving prose questions for free-form values like a URL.

    Packages: @checkstack/ai-backend, @checkstack/ai-frontend

  • feat(catalog): AI tools for environments

    Add catalog.createEnvironment and catalog.setSystemEnvironments AI tools plus
    a catalog.listEnvironments read projection, so the assistant can model
    one-system-many-environments instead of suggesting a separate system per
    environment. The catalog.createSystem tool description now teaches the 1-1
    system/check pairing and points to environments for modelling dev/staging/prod.

    Packages: @checkstack/catalog-backend

  • feat(common): add the environments docs slug to APP_DOC_SLUGS

    Expose APP_DOC_SLUGS.environments so in-app deep links can point to the
    Environments concept page (used by the onboarding wizard's environments hint).
    Guarded by the existing docs-links contract test.

    Packages: @checkstack/common, @checkstack/release

  • feat(frontend): guided "create your first check" wizard and onboarding nudges

    Add a FirstCheckWizard, reachable both from the Health Checks empty state and
    an always-available "Quick start" header button: the user picks a system (a new
    one or an existing one), pastes a URL, and the wizard creates the HTTP health
    check and the assignment (started immediately) in one guided flow, built on the
    new @checkstack/ui Stepper. This makes guided setup usable when onboarding into
    an instance that already has systems and checks, not only on first run.

    Also add two in-product nudges: an inline "one system, many environments" hint
    on the Create System form (so new users stop cloning a system per stage), and a
    clear "what an assignment is and why a check needs one" explainer on the
    assignment screen's empty state.

    Packages: @checkstack/catalog-frontend, @checkstack/healthcheck-frontend

  • feat(healthcheck): atomically create and assign a health check in one step

    Add a createAndAssign RPC that creates a health-check configuration and
    assigns it to a system in a single transaction, so the common "one system, one
    check" case can never leave a dormant, unassigned check that runs nothing. When
    the assignment is enabled it is scheduled immediately, exactly like
    associateSystem.

    The AI healthcheck.propose tool now prefers the HTTP strategy for a URL
    (instead of authoring a script health check) and, when given assignToSystemId,
    creates, assigns, and starts the check in the same approval.

    Also fixes a latent bug where the associateSystem handler silently dropped the
    per-assignment notificationPolicy before it reached the database.

    Packages: @checkstack/healthcheck-backend, @checkstack/healthcheck-common

  • feat(ui): add a Stepper primitive

    Add a presentational Stepper step-indicator component and a useStepper state
    hook for building guided multi-step flows (used by the new "create your first
    check" onboarding wizard). Completed steps are navigable; the active step is
    highlighted; future steps are muted. Animations are disabled on low-power
    devices via usePerformance.

    Packages: @checkstack/ui

  • fix(catalog): emit a realtime signal on catalog mutations so clients refresh

    Catalog was the only domain plugin that never broadcast a realtime signal, so
    any out-of-band write - the AI assistant (which mutates on the backend, with no
    frontend mutation to invalidate), GitOps reconcile, or another pod/user - left
    every other client's catalog cache stale until a hard reload. Most visibly, a
    system created via the assistant 404'd on the catalog detail page (which
    resolves a system by finding it in the cached getSystems list) until reload.

    Add a CATALOG_CHANGED signal (catalog.changed) and broadcast it from every
    catalog mutation (system, group, environment CRUD and membership changes). The
    frontend signal auto-invalidator refreshes the [[catalog]] react-query cache
    on every connected client, so out-of-band catalog changes now appear without a
    reload.

    Packages: @checkstack/catalog-backend, @checkstack/catalog-common

  • fix(healthcheck): emit a realtime signal on config/assignment changes

    The health-check executor broadcasts run/status signals, but config and
    assignment CRUD (create/update/delete/pause/resume, associate/disassociate,
    create-and-assign) emitted nothing - so a check created or edited out-of-band
    (the AI assistant, GitOps, another pod/user) did not appear in an open Health
    Checks list until the first run fired a status signal, up to an interval later.

    Add a HEALTHCHECK_CONFIG_CHANGED (healthcheck.config.changed) signal,
    broadcast from every config/assignment mutation, so the frontend signal
    auto-invalidator refreshes the [[healthcheck]] cache on every connected client
    immediately.

    Packages: @checkstack/healthcheck-backend, @checkstack/healthcheck-common

  • fix(mobile): make the nav drawer fully scrollable and de-clutter the navbar

    The mobile navigation drawer (Sheet) spanned the layout viewport
    (inset-y-0 ... h-full), so on a phone its bottom - and the last menu items -
    sat behind the browser URL bar and could not be reached. The sheet is now bound
    to the dynamic viewport (h-[100dvh], top-anchored), so it ends at the visible
    bottom and scrolls to the last item.

    The "Checkstack" wordmark in the navbar is now hidden below the sm breakpoint
    (the logo still anchors the home link), freeing space on the cramped mobile
    navbar.

    Packages: @checkstack/frontend, @checkstack/ui

Patch Changes

  • @checkstack/cache-api@0.3.15

    Packages: @checkstack/cache-utils

  • @checkstack/scripts@0.6.5

    Packages: create-checkstack-plugin

  • @checkstack/signal-common@0.2.13

    Packages: @checkstack/signal-frontend

@github-actions github-actions Bot force-pushed the changeset-release/main branch from fe48841 to 1537969 Compare June 26, 2026 17:23
@enyineer enyineer merged commit 3782adc into main Jun 26, 2026
4 checks passed
@enyineer enyineer deleted the changeset-release/main branch June 26, 2026 17:27
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