Releases: AWeber-Imbi/imbi
2.11.5
What's Changed
Added
- Sync PRs button in Project Doctor — a new "Sync PRs" action in the Doctor tab's Utility Functions card lets operators kick off an on-demand pull-request history backfill for a project, mirroring the existing Sync Commits & Tags workflow. (imbi-ui #434)
Improved
- Reports are now shareable links — each report in the Reports section has a genuine URL you can copy, open in a new tab, or bookmark. Back/Forward navigation works correctly between reports; the bare
/reportspath redirects to the default report. (imbi-ui #433)
Fixed
- MCP
--public-urldocumentation corrected — the help text and README example forIMBI_MCP_PUBLIC_URLnow shows the base host (e.g.https://imbi-public.aweber.io) instead of the/mcppath. FastMCP appends the mount path internally; including it in the configured value was doubling the path and breaking OAuth discovery for remote MCP clients. (imbi-mcp #16)
2.11.4
What's Changed
This release realigns the full stack at 2.11.4 (imbi-common 2.11.4). The 2.11.3 release advanced the API and plugins but left imbi-ui pinned at 2.11.0, so 2.11.4 ships the accumulated UI work and brings every component back into lockstep.
Added
- Apply Blueprint Fixes in Project Doctor — The Project Doctor panel now surfaces
blueprint-compliancefindings (missing required properties, invalid enum values, out-of-range numerics, missing defaults, and stale properties no longer covered by an applicable blueprint) and adds an Apply Blueprint Fixes action that fills in missing defaults, removes stale blueprint-managed properties, and re-runs analysis. This is the UI surface for the compliance check shipped server-side in 2.11.3. (imbi-ui #431)
Improved
- "Imbi Assistant" naming — Renamed every remaining user-facing "Imbot" reference (command-bar thinking state, release-note drafting placeholders, and supporting docs) to the proper Imbi Assistant. Text-only, no behavioral change. (imbi-ui #432)
All services and plugins are released in lockstep at 2.11.4 (imbi-common 2.11.4).
2.11.3
What's Changed
Added
-
Blueprint Compliance Check — Project Doctor now includes a built-in
blueprint-compliancecheck that compares each project's AGE node properties against its applicable blueprint JSON Schemas, flagging missing required fields, invalid enum values, out-of-range numerics, and missing defaults. A new Apply Blueprint Fixes action fills in missing defaults and removes stale blueprint-managed properties left over from project type changes. (imbi-api #450) -
Pull Request History Sync — A new
github-pr-syncwebhook plugin captures GitHub pull request events (opened, closed, reopened, synchronize) and writes them to ClickHouse. Async_all_historybackfill action populates historical PR data. (imbi-plugin-github #40, imbi-api #450)
Fixed
- Dependency bumps — aiohttp 3.13.5 → 3.14.0 across all services; starlette 1.0.0 → 1.2.1 in imbi-api and imbi-gateway.
All services and plugins are released in lockstep at 2.11.3 (imbi-common 2.11.3).
2.11.2
What's Changed
Fixed
- Event queries target
imbi.eventsdirectly — the event list and get-by-id endpoints were querying through theevents_latestview instead of the underlying table; switched to queryimbi.eventsdirectly (imbi-api #448). Theevents_latestview DDL and related schema migration stubs have also been removed fromimbi-common(imbi-common v2.11.2).
All services and plugins are released in lockstep at 2.11.2 (imbi-common 2.11.2).
2.11.1
What's Changed
Fixed
imbi-plugin-pagerdutysubmodule registration — the plugin was shipped and documented in 2.11.0 but the submodule pointer was missing from the deployment repo; it is now included at the 2.11.0 tag.
All services and plugins are released in lockstep at 2.11.1 (imbi-common 2.11.0).
2.11.0
What's Changed
Added
- PagerDuty integration — end-to-end incident management: a new
imbi-plugin-pagerduty(lifecycle, webhook, and incidents plugins), host support in the API for incidents, lifecycle sync, and the encrypted webhook signing secret (imbi-api #438), HMAC-verified webhook dispatch in the gateway (imbi-gateway #40), and an incidents tab + lifecycle mapping editor in the UI (imbi-ui #416). - Releases tab for build-and-release projects — library/no-deploy project types can cut and view releases (tag + GitHub release) without an environment pipeline, gated on a new
releasableproject-type flag (imbi-api #439; imbi-ui #417, #419). - Webhook History admin view — browse and inspect inbound webhook events with filters and per-event detail (imbi-api #437; imbi-ui #415).
- Document attachments for users and project types — attach documents beyond projects, plus a top-level Documents index and a profile Documents tab (imbi-api #444; imbi-ui #424).
- Actor attribution across deploys, commits, and releases — events now resolve to the responsible Imbi user (Gravatar + profile link) through a canonical UserIdentity widget (imbi-api #446; imbi-plugin-github #39; imbi-ui #426, #430).
- Admin dashboard Releases & Health widgets — releases-by-environment and project-health breakdowns on the admin overview (imbi-ui #428).
- Loading-state skeletons — footprint skeletons across the UI in place of spinners and "Loading…" text (imbi-ui #425).
Improved
- Deeper deployment resync — the resync action now backfills historical deployments and re-resolves their attribution rather than only catching up the latest event (imbi-api #447; imbi-ui #429).
- Commit-sync hardening — CI status captured during sync (imbi-plugin-github #37), accurate lightweight-tag dates (#38), and pause-and-resume on GitHub rate limits instead of dead-lettering (imbi-api #436; imbi-plugin-github #36).
- Search — non-Project results are routed from the command bar (which now defaults to Projects), results carry routing context, Comments and Components are searchable in org-scoped vector search, and archived projects are excluded (imbi-api #440, #442, #443, #445; imbi-ui #420, #421).
- Gateway dispatch — two-phase per-handler dispatch outcome recording for webhook routing (imbi-gateway #41).
- Slack bot rendering — adopted improved message rendering and behavior in imbi-slackbot.
Fixed
- Release-drift base selection — drift is computed against the highest semver release rather than the most recently tagged one (imbi-api #441).
- UserIdentity rendering on project detail — corrected avatar/name layout on the project detail page (imbi-ui #427).
- Releases tab lists — scrollable lists with an accurate cutting tag/suggestion (imbi-ui #418).
All services and plugins are released in lockstep at 2.11.0 (imbi-common 2.11.0).
2.10.0
What's Changed
A lockstep release advancing every service, plugin, and the UI to 2.10.0 (pinned to imbi-common 2.10.0). Headline work: deployment-status scoring, a redesigned project Environments card backed by per-environment edge attributes, end-to-end commit-author attribution, and webhook expressions that evaluate against the full event context.
⚠️ Breaking — webhook action expressions. Actionhandler_configselectors and CEL expressions now evaluate against the same event context as filter expressions, so body fields must be addressed under the/payloadprefix (e.g./deployment/ref→/payload/deployment/ref,substring(deployment.sha, 0, 7)→substring(payload.deployment.sha, 0, 7)). Existing top-level selectors must be migrated. (imbi-gateway #39, imbi-plugin-sonarqube #2)
Added
- Deployment-status scoring — a new
DeploymentStatusPolicyscores projects on their latest deployment status and recomputes automatically when a deployment event is recorded. The newdeployment_statuspolicy category is fully CRUD-able. (imbi-api #433, imbi-common #156) - Redesigned project Environments card with per-environment attributes — each environment now renders its blueprint-defined
DEPLOYED_INedge attributes with inline per-key editing, a release-status badge, deployed version, and deployer, plusx-displayvalue formatting. Backed by a new targetedPATCH /{project_id}/environments/{env_slug}endpoint. (imbi-api #435, imbi-ui #414) - Commit-author attribution — synced commits are attributed to Imbi users by resolving the external author identity: directly against the graph in the on-demand backfill, and over the gateway's identity lookup on the webhook path. (imbi-api #431, imbi-plugin-github #33, imbi-gateway #36)
- "My Teams" projects filter — a toggle on the projects list narrows it to projects owned by a team you belong to;
GET /users/menow returns the caller's team memberships. (imbi-api #432, imbi-ui #411) - Webhook rule filtering on the event context —
filter_expressions can now match on request headers (e.g.X-GitHub-Event) and the resolved event type, evaluated against the same materialized event context recorded to the activity feed. (imbi-gateway #38)
Improved
- Commit sync survives GitHub rate limits — every GitHub request now pauses and resumes on both primary and secondary rate limits (reactive retry on 403/429 plus preemptive pause when the remaining quota hits zero), bounded per call so the gateway request path never blocks for long. (imbi-plugin-github #32)
- Full ClickHouse footprint on the admin dashboard — the dashboard now reports the complete ClickHouse storage footprint and the storage-size figure is correct. (imbi-api #434, imbi-ui #413)
- Lockstep to imbi-common 2.10.0 — all services (imbi-api, imbi-gateway, imbi-mcp, imbi-assistant, imbi-slackbot), plugins (aws, github, logzio, oidc, sonarqube), and imbi-ui pinned to imbi-common 2.10.0, which adds the plugin commit-author contract and
ON CLUSTER/Replicated engine injection for clustered ClickHouse. (imbi-common #154, #155, #157)
Fixed
- Configuration "Connect now" link — now routes to
/settings/connections. (imbi-ui #410)
2.9.3
What's Changed
A scoped patch over 2.9.2 fixing the on-demand "Sync Commits & Tags" feature. Only imbi-api and imbi-plugin-github changed; all other services remain at 2.9.2 (and imbi-common stays 2.9.2).
Fixed
- Commit-sync status endpoint no longer 500s —
GET /commits/sync-statusaliased a column with the reserved wordby, which Apache AGE expanded into invalid SQL. Renamed torequested_by. (imbi-api #430) - Commit-sync status writes survive contention —
set_statusnow retries AGE's transient concurrent-update conflict so the worker's authoritativerunning/success/failedtransitions land even when a webhook touches the project mid-write; the enqueue endpoint's optimisticqueuedwrite no longer clobbers a newerrunning. (imbi-api #430) - Tag backfill records annotated-tag metadata — the full-history sync now reads tags via
GET /git/matching-refs/tagsand enriches annotated tags withmessage,tagger_name/tagger_email, andtagged_atfrom the tag object;urlis populated for every tag on both the backfill and webhook paths. Lightweight tags carry name/sha/url only. (imbi-plugin-github #30)
2.9.2
What's Changed
Added
- On-demand "Sync Commits & Tags" — Project Doctor gains a button that enqueues a background job to backfill a project's full commit and tag history into ClickHouse, complementing the incremental webhook sync. Spans a new imbi-api background worker + endpoint, a full-history sync path with GitHub App auth in the commit-sync plugin, and the UI control. (imbi-api #427, imbi-plugin-github #26, imbi-plugin-github #29, imbi-ui #407)
Improved
- Access log shows the API-key owner — API-key authenticated requests now log the resolving principal (user email or service-account slug) instead of the opaque
ik_<id>, making the access log far easier to attribute. (imbi-api #429)
Fixed
- Events feed no longer 500s on non-UTF-8 bytes — JSON columns containing non-UTF-8 byte sequences are decoded gracefully instead of erroring the events feed. (imbi-api #428)
- Webhook gateway normalizes payloads to UTF-8 — incoming webhook payloads are sanitized to valid UTF-8 before they are evaluated or stored. (imbi-gateway #34)
- Commit-sync host resolution on GHEC/GHES — fixes GitHub API base resolution for GitHub Enterprise Cloud/Server services in the commit-sync plugin. (imbi-plugin-github #28)
Lockstep
All Python services and plugins pin imbi-common 2.9.2 and exclude uv.lock from the tombi-format pre-commit hook.
2.9.1
What's Changed
Fixed
- Webhook & analysis plugin assignments — Assigning a
webhookoranalysisplugin to a project type returned422. The assignment fieldtabis renamed toplugin_typeend to end — across the imbi-api assignment models, validator, and every:USES_PLUGINCypher read/write, and across the imbi-ui types and consumers — now typed against imbi-common's fullPluginTypeset instead of a drifted 4-value union. Edge readers fall back to the legacytabproperty until the one-time graph migration runs. (imbi-api #425; imbi-ui #405)
Improved
- imbi-common 2.9.1 across the stack — Every service and plugin is rebuilt against imbi-common 2.9.1, which exports the
PluginTypeenum as the single source of truth for plugin/assignment types.