Skip to content

chore(deps): bump node from 24.15.0-alpine3.23 to 26.3.1-alpine3.23 in /dockerfile#363

Open
dependabot[bot] wants to merge 2795 commits into
mainfrom
dependabot/docker/dockerfile/node-26.3.1-alpine3.23
Open

chore(deps): bump node from 24.15.0-alpine3.23 to 26.3.1-alpine3.23 in /dockerfile#363
dependabot[bot] wants to merge 2795 commits into
mainfrom
dependabot/docker/dockerfile/node-26.3.1-alpine3.23

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 18, 2026

Copy link
Copy Markdown
Contributor

Bumps node from 24.15.0-alpine3.23 to 26.3.1-alpine3.23.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

stevdrouet and others added 30 commits June 2, 2026 19:38
⚠️ Sync from upstream repository (conflicts to resolve)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…oken

The GitHub App work renamed `hasToken` → `hasAuth` on the public provider
DTO; marketplace use cases (link, publish, validateUrl) and their tests
still referenced the old field, breaking the build.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ce repo tests

GitProviderSchema declares a many-to-one relation to OrganizationGitHubApp,
so any test datasource that loads GitProviderSchema must also register
OrganizationGitHubAppSchema or TypeORM fails metadata resolution.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The publish job pushed commits to the `packmind/sync` branch but never
opened the actual pull request, leaving the marketplace repo with a
detached branch and no review surface — contradicting the rolling-PR
promise from PRD §6.

Add a new `IGitPort.openOrUpdatePullRequest(repo, { head, title, body })`
primitive with rolling-PR semantics: when an open PR already exists with
the same head→base, it is returned untouched (no duplicate opened);
otherwise a new PR is opened. GitHub implementation lists open PRs via
`/pulls?head&base&state=open` and posts a new one when none is found,
with a 422 "pull request already exists" retry to handle the
concurrent-publisher race. GitLab implementation mirrors the pattern
through the merge-request endpoints. Routed through `GitProviderService`
and `GitAdapter` next to `createBranchFromBase`.

The publish job now calls it after a successful `commitToGit`, stores the
returned URL on `MarketplaceDistribution.prUrl`, and includes `prUrl` on
the `PluginPublishedEvent` payload (matches PRD §5
`plugin_publish_succeeded` event property). A PR-call failure after a
successful commit is logged at warn level and leaves the distribution in
`success` — the underlying push already landed, so we don't roll back.

Refs: GH-580

Co-Authored-By: Claude <noreply@anthropic.com>
…and errors

Sprint group G1 (types-deployments) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 1.1: Extend DistributionStatus enum with to_be_removed and removed
- 1.2: Add MarketplacePluginRemovalInitiatedEvent
- 1.3: Add PackagesDeletedEvent
- 1.4: Add PluginDistributionNotFoundError and PluginDistributionInvalidStateError domain errors
- 1.5: Add IMarkPluginForRemovalUseCase, ICancelPluginRemovalUseCase, IListMarketplaceDistributionsUseCase contracts
- 1.6: Extend IDeploymentPort with new methods

Note: MarketplacePluginRemovalInitiatedEvent.eventName uses
'deployments.distribution.retired' (3 segments) to satisfy the
@domain-events lint rule.

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
Sprint group G2 (feature-flag) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 1.7: Declare MARKETPLACE_PLUGIN_REMOVAL_FEATURE_KEY feature flag

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
Sprint group G3 (migrations) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 2.5: No-op migration documenting new distribution lifecycle states (to_be_removed, removed)

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
Sprint group G9 (docs) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 9.1: Add "Retire a plugin" end-user documentation
- 9.2: CHANGELOG entry under [Unreleased]

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
…ft detection

Sprint group G4 (backend-deployments) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 2.1: Extend IMarketplaceDistributionRepository with new finders
- 2.2: Implement new finders in MarketplaceDistributionRepository
- 2.3: Distribution test factory .toBeRemoved() / .removed() helpers
- 2.4: Repository spec covering new finders and status transitions
- 3.1: markPluginForRemoval use case
- 3.2: markPluginForRemoval spec
- 3.3: cancelPluginRemoval use case
- 3.4: cancelPluginRemoval spec
- 3.5: listMarketplaceDistributions use case
- 3.6: listMarketplaceDistributions spec
- 3.7: Emit PackagesDeletedEvent from DeletePackagesBatchUsecase
- 3.8: DeletePackagesBatchUsecase spec for event emission
- 3.9: PackageDeletedDistributionsListener
- 3.10: Listener spec
- 3.11: Extend MarketplaceReconciliationDelayedJob with distribution cross-check
- 3.12: Reconciliation job spec
- 3.13: Wire new use cases + listener into DeploymentsHexa
- 3.14: Expose new methods on DeploymentsAdapter
- 3.15: Adapter spec for new methods

Notes:
- MarketplaceDescriptor gained optional driftedPluginSlugs?: string[] for drift persistence.
- MarketplaceReconciliationJobFactory and DeploymentsAdapter constructors now take IMarketplaceDistributionRepository.

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
Sprint group G5 (amplitude) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 4.1: Subscribe Amplitude listener to MarketplacePluginRemovalInitiatedEvent
- 4.2: Amplitude listener spec

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
Sprint group G6 (api-marketplaces) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 5.1: Add marketplace removal routes to controller (GET distributions, POST removal by distribution/package, DELETE removal)
- 5.2: Controller spec covering new routes + error mapping

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
Sprint group G7 (frontend-marketplaces) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 6.1: Extend marketplace gateway interface + impl
- 6.2: Add distribution query options + removal/cancel mutation hooks
- 6.3: Queries spec
- 7.1: DistributionStatusBadge component + spec
- 7.2: RemovePluginButton component + spec
- 7.3: CancelRemovalButton component + spec
- 7.4: MarketplaceDistributionsTable component + spec
- 7.5: MarketplaceDetailsHeader component + spec
- 7.6: Extend MarketplaceStateBadge with driftedPluginSlugs tooltip
- 7.7: Link MarketplaceRow name to details route
- 7.8: New marketplace details route
- 7.9: PackageMarketplaceDistributions component + spec
- 7.10: Insert PackageMarketplaceDistributions in package details page (flag-gated)

All action regions gated behind <PMFeatureFlag featureKeys={[MARKETPLACE_PLUGIN_REMOVAL_FEATURE_KEY]}>.

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
Sprint group G8 (integration-tests) for feature remove-published-plugin-from-marketplace.

Completed tasks:
- 8.1: Removal → reconciliation path
- 8.2: Drift detection on direct repo delete
- 8.3: Cancellation reverts state
- 8.4: Package-delete cascade across marketplaces
- 8.5: Both manual-trigger routes (by-distributionId and by-packageId)

Notes:
- Registered MarketplaceDistributionSchema in deploymentsSchemas barrel so the
  integration-test datasource synchronizes the table (was wired into
  DeploymentsHexa but missing from the schemas index).
- 8.1: when a to_be_removed slug disappears from the descriptor the descriptor
  itself diffs, so the marketplace lands in 'drift' rather than 'healthy'; the
  test asserts the AC10 invariant (driftedPluginSlugs stays undefined — expected
  removals are suppressed from drift).

Refs: tmp/feature-specs/remove-published-plugin-from-marketplace/

Co-Authored-By: Claude <noreply@anthropic.com>
Reword the PackagesDeletedEvent comment and its emission site to the generic
wording used in the OSS repo so the shared files are byte-identical across
repos and the OSS→proprietary sync merges cleanly (no add/add or overlapping
-edit conflict). No behavior change.

Co-Authored-By: Claude <noreply@anthropic.com>
The removal/cancel actions were gated behind <PMFeatureFlag> but only
featureKeys was passed — the required featureDomainMap and userEmail were
missing, so the flag resolved to false and hid the actions for everyone.
Wire the auth context + DEFAULT_FEATURE_DOMAIN_MAP on both the marketplace
distributions table and the package Distributions tab.

Also fix latent type errors swc did not catch: add the to_be_removed/removed
keys to PackageArtifactsTable's status-badge map, widen PMConfirmationModal
message to ReactNode, and drop a dead __testables__ export.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
vincent-psarga and others added 22 commits June 17, 2026 11:56
…sort)

- show "last published" as relative time (e.g. "2d ago") instead of locale date
- drop monospace font on command artifact names in Overview and Changes tabs
- sort bundled artifacts alphabetically within each type group

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…plugin detail header

Add `lastPublishedOnMainAt` to `MarketplaceDistributionListItem`, populated
in `ListMarketplaceDistributionsUseCase` from the most recent `success`
distribution per package — so a re-publish whose latest row is still in PR
keeps showing the prior on-main date instead of "—".

The detail header now renders:
- "last published Xd ago" when an on-main publish exists,
- "Still waiting for PR validation" when status is `pending_merge` and the
  plugin has never landed on main,
- "last published —" as the fallback.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts:
#	apps/frontend/src/domain/deployments/api/gateways/DeploymentsGateway.ts
#	apps/frontend/src/domain/deployments/api/gateways/IDeploymentsGateway.ts
#	apps/frontend/src/domain/organizations/components/SidebarNavigation.tsx
#	apps/frontend/src/shared/utils/routes.ts
#	packages/types/src/deployments/ports/IDeploymentPort.ts
#	packages/ui/src/lib/components/content/PMFeatureFlag/PMFeatureFlag.tsx
⚠️ Sync from upstream repository (conflicts to resolve)
The chevron suggested affordance the rows don't actually have — clicking
them does nothing. Removing it tightens the row and stops promising an
interaction we don't honor.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ance

The governance DRIFT section listed every package because
ListDriftedPackagesByOrgUseCase treated every active deployment returned
by findOutdatedDeploymentsBySpace as drifted. That repository method
actually returns all active deployments (with their deployed version),
not just outdated ones — the space overview compensates by comparing
versions itself, but the governance use case did not.

It now resolves drift the same way the space overview does: a deployed
artifact counts as drift only when its deployed version is behind the
latest version, or when the artifact has been deleted from Packmind.

To read latest versions org-wide without per-space membership checks
(governance is org-scoped), add membership-free
listAllRecipesByOrganization / listAllSkillsByOrganization to the
recipes and skills ports, mirroring the existing
listAllStandardsByOrganization.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Prefix each package name in the governance DRIFT section with the shared
LuPackage icon so packages are easier to spot at a glance. The icon and
name share the row's flexible width, so only the name truncates.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Move the "Drift" signal out of the page-header state badge and into a
  dedicated warning banner rendered above the package list by
  `MarketplaceDetailAlerts`. The banner explains that the marketplace
  descriptor was edited outside Packmind and, when known, lists the
  published plugins that are no longer listed in the descriptor.
- The header state badge now only renders for `unreachable` /
  `bad_format` — genuine repo-level failures that still belong at the
  page top.
- Dedupe `driftedPluginSlugs` in `MarketplaceReconciliationDelayedJob`:
  each republish writes a fresh `success` row for the same slug, so the
  drift list collapsed multiple entries per plugin. Switched to a
  `Set<string>` accumulator with a regression test that pushes three
  successful publishes of `p1` and asserts the persisted list is
  `['p1']`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drop the table + toolbar in favor of an HStack-based row layout matching
apps/playground/src/prototypes/marketplaces. Remove the "Last checked"
and "Added by" columns. Replace the state badge with a small orange dot
near the repo path that only surfaces git access issues (unreachable,
bad format, auth/repo-not-found refinements); move drift and outdated
plugin counts into a separate "N outdated" indicator under the Contents
column with a human-friendly tooltip. The repo path opens a menu with
Copy SSH URL / Copy HTTPS URL / Open on provider (SSH URL derived from
the web URL via a regex that covers GitHub, GitLab and Bitbucket).
Unlink moves into a trailing ellipsis menu.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add the search domain types (SearchResult, SearchResponse,
SearchArtifactType, SearchMatchSource) and the ISearchPort hexagonal port
with SearchCommand, completing the untracked search type scaffolding.
Export the search domain from the @packmind/types root barrel so the
frontend gateway can import SearchResponse.

Co-Authored-By: Claude <noreply@anthropic.com>
Add OrganizationsSearchModule with:
- SearchController (GET /organizations/:orgId/search?q=, guarded by
  OrganizationAccessGuard, rejects queries shorter than 2 chars)
- SearchService (resolves the user's member spaces via ISpacesPort and
  builds the spaceSlugById map)
- SearchAdapter (read-only ILIKE QueryBuilders over standards, recipes,
  skills and packages, scoped to the member spaces; recipes join the
  latest RecipeVersion for the command summary; results ordered
  name-match first then description, capped at 15, soft-delete filtered)

Wire the module into OrganizationsModule imports and the AppModule
RouterModule tree as /organizations/:orgId/search.

Co-Authored-By: Claude <noreply@anthropic.com>
Wire the navbar search bar to the org-scoped backend endpoint
GET /api/v0/organizations/:orgId/search via the existing spaces-domain
data-flow pattern.

- SearchGatewayApi extends PackmindGateway and implements ISearchGateway
  (GET /organizations/:orgId/search?q=<term>)
- searchQueryKeys scoped under the organization query scope
- getSearchQueryOptions / useSearchQuery gated on orgId and a trimmed
  term length >= 2, with keepPreviousData to keep results visible while a
  new keystroke is in flight
- complete the pre-existing search domain api barrel (gateway + queries
  + queryKeys)

Co-Authored-By: Claude <noreply@anthropic.com>
Surface a debounced global search bar in a new slim top navbar above the
sidebar/content shell, letting users find any artifact (standard, command,
skill, package) across the spaces they belong to without knowing which space
it lives in.

- TopNavbar: slim PMHStack, background.primary surface + border.tertiary
  divider, holds only the search bar (per the agreed navbar scope)
- GlobalSearchBar: PMInputGroup + PMInput (LuSearch start element), debounced
  (250 ms) search triggered at >=2 chars, results in a PMPopover dropdown
  anchored (not triggered) to the input so refining the query never closes it
- SearchResultRow: bold name + single-line description preview with the
  searched term highlighted (blue.subtle/blue.fg palette), a type badge, and
  click/keyboard navigation to the single-item page (skills by slug, others
  by id)
- highlightMatch util splits case-insensitively and wraps matches with PMText
- useDebouncedValue shared hook (manual setTimeout, no new dependency)
- AuthenticatedLayout wraps sidebar+content in a PMVStack with TopNavbar above

All UI uses @packmind/ui PM-prefixed components and Packmind semantic tokens
only; no raw div/input or hardcoded hex. Renders correctly in the single dark
theme.

Co-Authored-By: Claude <noreply@anthropic.com>
- Remove PACKMIND_EDITION branching in docker.yml and release.yml
- Add OSS tag variants alongside proprietary tags via docker tag
- Always push public (unsuffixed) images on release
- List both OSS and Enterprise image tags in release notes

Co-Authored-By: Claude <noreply@anthropic.com>
…362)

Drive the deploy workflow off github.ref only, dropping the
PACKMIND_EDITION gating. Each main-branch commit now updates the prod
cloud, staging cloud and staging on-prem OSS values together, matching
the unified Docker build that publishes both image variants per run.
Each release tag updates both the OSS and enterprise on-prem values.


Claude-Session: https://claude.ai/code/session_01GnFUbyMuQHkpiRmYXHTN2H

Co-authored-by: Claude <noreply@anthropic.com>
Bumps node from 24.15.0-alpine3.23 to 26.3.1-alpine3.23.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 26.3.1-alpine3.23
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file docker Pull requests that update docker code labels Jun 18, 2026
@greptile-apps

greptile-apps Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

PR author is in the excluded authors list.

@dependabot @github

dependabot Bot commented on behalf of github Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

A newer version of node exists, but since this PR has been edited by someone other than Dependabot I haven't updated it. You'll get a PR for the updated version as normal once this PR is merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file docker Pull requests that update docker code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants