Skip to content

Merge main into next - #6191

Open
vivid-planet-bot wants to merge 13 commits into
nextfrom
merge-main-into-next
Open

Merge main into next#6191
vivid-planet-bot wants to merge 13 commits into
nextfrom
merge-main-into-next

Conversation

@vivid-planet-bot

Copy link
Copy Markdown
Collaborator

This is an automated pull request to merge changes from main into next.

VPS-Obi and others added 13 commits August 13, 2026 10:44
Was temporarily changed in
#6087.
The editor offered six heading levels while the mail theme has only
three text variants, so `header-three` through `header-six` all rendered
the same. Authors could pick a style that changed nothing.

The demo also had no example of lists or phone links.

Rich text stored before this change breaks, and there is no migration.
Old headings render as body text, and old links lose their href because
`MailLinkBlock` nests the link data under `block`. Only Brevo email
campaigns can hold such content, and they are rare enough not to justify
a migration in a demo that runs only locally.

Co-authored-by: Ricky Smith <jamesricky@me.com>
#6195 has some issues:

- Adds minor/patch changes to the release that were already released.
Fix by removing corresponding changesets.
- Adds `dextinity-demo-admin-server@1.0.3`. Fix by removing the version
and changelog Demo Admin Server (and all other private packages).
## Status quo

`SECURITY.md` still lists `7.x` as supported with security updates until
`2026-08-07`. That date has passed, so the table claims support the
project no longer provides.

## Change

Drop the `7.x` row and widen the unsupported row from `< 7.x` to `<
8.x`, so the supported versions are `9.x` and `8.x` (until
`2027-07-07`).


---
_Generated by [Claude
Code](https://claude.ai/code/session_01UCKHwZKAQPC76KDf7cBVrR)_

Co-authored-by: Claude <noreply@anthropic.com>
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @dextinity/admin@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/admin` to `@dextinity/admin`

      Update the dependency in `package.json` and all imports:

    ```diff
    - import { MainContent } from "@comet/admin";
    + import { MainContent } from "@dextinity/admin";
    ```

      **Breaking changes**

    -   Rename `createCometTheme` to `createDextinityTheme`
- Rename the theme component prefix from `CometAdmin` to
`DextinityAdmin`. This affects `components` overrides passed to
`createDextinityTheme`, the `name` passed to `useThemeProps` in custom
components and the generated CSS class names
(`.CometAdminClearInputAdornment-root` ->
`.DextinityAdminClearInputAdornment-root`)
- Rename the CSS variables from `--comet-admin-*` to
`--dextinity-admin-*`, for instance,
`--comet-admin-master-layout-content-top-spacing` ->
`--dextinity-admin-master-layout-content-top-spacing`
- Remove the `CometLogo` component. Use `DextinityLogo` from
`@dextinity/admin-icons` instead

### Patch Changes

-   Updated dependencies [f843a5e]
    -   @dextinity/admin-icons@10.0.0

## @dextinity/admin-babel-preset@10.0.0

### Major Changes

- f843a5e: Rename `@comet/admin-babel-preset` to
`@dextinity/admin-babel-preset`

Update the dependency in `package.json` and the preset name in your
Babel configuration:

    ```diff
    - "presets": ["@comet/admin-babel-preset"]
    + "presets": ["@dextinity/admin-babel-preset"]
    ```

## @dextinity/admin-color-picker@10.0.0

### Major Changes

- f843a5e: Rename `@comet/admin-color-picker` to
`@dextinity/admin-color-picker`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename the theme component prefix from `CometAdmin` to
`DextinityAdmin`. This affects `components` overrides passed to
`createDextinityTheme` and the generated CSS class names

### Patch Changes

-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
    -   @dextinity/admin-icons@10.0.0
    -   @dextinity/admin@10.0.0

## @dextinity/admin-date-time@10.0.0

### Major Changes

- f843a5e: Rename `@comet/admin-date-time` to
`@dextinity/admin-date-time`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename the theme component prefix from `CometAdmin` to
`DextinityAdmin`. This affects `components` overrides passed to
`createDextinityTheme` and the generated CSS class names

### Patch Changes

-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
    -   @dextinity/admin-icons@10.0.0
    -   @dextinity/admin@10.0.0

## @dextinity/admin-generator@10.0.0

### Major Changes

- f843a5e: Rename `@comet/admin-generator` to
`@dextinity/admin-generator`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename the `comet-admin-generator` binary to
`dextinity-admin-generator`:

        ```diff
        - "generate-admin": "comet-admin-generator generate"
        + "generate-admin": "dextinity-admin-generator generate"
        ```

- Rename the config file suffix from `.cometGen.tsx` to
`.dextinityGen.tsx`. The default file pattern is now
`src/**/*.dextinityGen.{ts,tsx}`

- Change the header of generated files. Rerun the generator to update
them

### Patch Changes

-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
    -   @dextinity/admin-icons@10.0.0
    -   @dextinity/admin@10.0.0
    -   @dextinity/cms-admin@10.0.0

## @dextinity/admin-icons@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/admin-icons` to `@dextinity/admin-icons`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

    -   Remove the `Comet` and `CometOutline` icons
- Remove the `CometColor` component. Use `DextinityIcon` instead, which
provides the `light`, `dark` and `masked` variants
- Remove the `CometDigitalExperienceLogo` component. Use `DextinityLogo`
instead, which provides the `light`, `dark` and `monochrome` variants
- Rename the `CometColor` member of the `IconName` type to
`DextinityIcon`

`DextinityIcon` and `DextinityLogo` derive their size from `fontSize`,
so call sites no longer pass `width`/`height` pairs:

        ```diff
        - <CometDigitalExperienceLogo width={132} height={30} />
        + <DextinityLogo sx={{ fontSize: 30 }} />
        ```

## @dextinity/admin-rte@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/admin-rte` to `@dextinity/admin-rte`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename the theme component prefix from `CometAdmin` to
`DextinityAdmin`. This affects `components` overrides passed to
`createDextinityTheme` and the generated CSS class names
- Rename the `--comet-admin-rte-outer-border-color` CSS variable to
`--dextinity-admin-rte-outer-border-color`

### Patch Changes

-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
    -   @dextinity/admin-icons@10.0.0
    -   @dextinity/admin@10.0.0

## @dextinity/brevo-admin@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/brevo-admin` to `@dextinity/brevo-admin`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Resolve the configuration via `DextinityConfigProvider` instead of
`CometConfigProvider`

### Patch Changes

-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
    -   @dextinity/admin-date-time@10.0.0
    -   @dextinity/admin-icons@10.0.0
    -   @dextinity/admin@10.0.0
    -   @dextinity/cms-admin@10.0.0

## @dextinity/cms-admin@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/cms-admin` to `@dextinity/cms-admin`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename `CometConfigProvider` to `DextinityConfigProvider`,
`useCometConfig` to `useDextinityConfig` and the `CometConfig` type to
`DextinityConfig`. By convention, the project's `comet-config.json` is
renamed to `dextinity-config.json`
- Rename the `cometType` property of iframe messages to `dextinityType`.
The site must use a matching `@dextinity/site-react` or
`@dextinity/site-nextjs` version
- Rename the site preview cookie from `__comet_site_preview` to
`__dextinity_site_preview` and the impersonation cookie from
`comet-impersonate-user-id` to `dextinity-impersonate-user-id`
- Expect the renamed `DextinityImageResolutionException` and
`DextinityValidationException` error codes in DAM file uploads. A
matching `@dextinity/cms-api` version is required
- Rename the theme component prefix from `CometAdmin` to
`DextinityAdmin`. This affects `components` overrides passed to
`createDextinityTheme` and the generated CSS class names
- Rename the CSS variables from `--comet-admin-*` to
`--dextinity-admin-*`
- Replace the Comet logo in the header, the about modal and the site
preview with the Dextinity logo

### Patch Changes

-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
-   Updated dependencies [f843a5e]
    -   @dextinity/admin-date-time@10.0.0
    -   @dextinity/admin-icons@10.0.0
    -   @dextinity/admin-rte@10.0.0
    -   @dextinity/admin@10.0.0

## @dextinity/agent-features@10.0.0

### Major Changes

- f843a5e: Rename `@comet/agent-features` to `@dextinity/agent-features`

      Update the dependency in `package.json`.

      **Breaking changes**

- Rename the skills to Dextinity: `comet-admin-ui` ->
`dextinity-admin-ui`, `comet-block` -> `dextinity-block`,
`comet-core-admin-component-authoring` ->
`dextinity-core-admin-component-authoring`, `comet-mail-react` ->
`dextinity-mail-react`, `comet-major-migration` ->
`dextinity-major-migration` and `comet-minor-update` ->
`dextinity-minor-update`. Rerun `dextinity install-agent-features` and
remove the previously installed skills

## @dextinity/api-generator@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/api-generator` to `@dextinity/api-generator`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename the `comet-api-generator` binary to `dextinity-api-generator`:

        ```diff
        - "generate-crud": "comet-api-generator"
        + "generate-crud": "dextinity-api-generator"
        ```

- Change the header of generated files. Rerun the generator to update
them

### Patch Changes

-   Updated dependencies [86f90cb]
-   Updated dependencies [f843a5e]
    -   @dextinity/cms-api@10.0.0

## @dextinity/brevo-api@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/brevo-api` to `@dextinity/brevo-api`

      Update the dependency in `package.json` and all imports:

    ```diff
    - import { BrevoModule } from "@comet/brevo-api";
    + import { BrevoModule } from "@dextinity/brevo-api";
    ```

### Patch Changes

-   Updated dependencies [86f90cb]
-   Updated dependencies [f843a5e]
    -   @dextinity/cms-api@10.0.0

## @dextinity/cms-api@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/cms-api` to `@dextinity/cms-api`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename `CometException` and its subclasses: `CometValidationException`
-> `DextinityValidationException`, `CometEntityNotFoundException` ->
`DextinityEntityNotFoundException`, `CometImageResolutionException` ->
`DextinityImageResolutionException`. The error codes returned by the API
change accordingly, so a matching `@dextinity/cms-admin` version is
required
- Rename `CometAuthGuard` to `DextinityAuthGuard` and the
`@DisableCometGuards()` decorator to `@DisableDextinityGuards()`
- Rename the database tables `CometFileUpload`, `CometUserPermission`
and `CometUserContentScopes` to `DextinityFileUpload`,
`DextinityUserPermission` and `DextinityUserContentScopes`. A migration
is shipped with the package, so running the migrations is sufficient
- Rename the site preview cookie from `__comet_site_preview` to
`__dextinity_site_preview` and the impersonation cookie from
`comet-impersonate-user-id` to `dextinity-impersonate-user-id`

### Minor Changes

-   86f90cb: Support `dextinity.com/*` Kubernetes labels and annotations

The Builds, Cron Jobs and Kubernetes modules now read the labels and
annotations of Kubernetes resources with the `dextinity.com` prefix:

| Previously | Now |
| ------------------------------- | ------------------------------- |
| `comet-dxp.com/instance` | `dextinity.com/instance` |
| `comet-dxp.com/parent-cron-job` | `dextinity.com/parent-cron-job` |
| `comet-dxp.com/label` | `dextinity.com/label` |
| `comet-dxp.com/builder` | `dextinity.com/builder` |
| `comet-dxp.com/trigger` | `dextinity.com/trigger` |
| `comet-dxp.com/content-scope` | `dextinity.com/content-scope` |

The `comet-dxp.com` prefix is still supported, so existing Helm charts
keep working without changes.
Resources are expected to use one prefix or the other: if no resource
matches the `dextinity.com` labels, the `comet-dxp.com` ones are used
instead.

      **Example**

    ```yaml
    metadata:
        annotations:
            dextinity.com/label: "Demo Cron Job"
dextinity.com/content-scope: '{ "domain": "main", "language": "en" }'
    ```

## @dextinity/cli@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/cli` to `@dextinity/cli`

      Update the dependency in `package.json`.

      **Breaking changes**

    -   Rename the `comet` binary to `dextinity`:

        ```diff
        - "generate-block-types": "comet generate-block-types"
        + "generate-block-types": "dextinity generate-block-types"
        ```

## @dextinity/eslint-config@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/eslint-config` to `@dextinity/eslint-config`

Update the dependency in `package.json` and the imports in your ESLint
configuration:

    ```diff
- import eslintConfigReact from "@comet/eslint-config/future/react.js";
+ import eslintConfigReact from
"@dextinity/eslint-config/future/react.js";
    ```

      **Breaking changes**

- Rename the plugin namespace from `@comet` to `@dextinity`. Rule
overrides and disable comments must be updated, for instance,
`@comet/no-other-module-relative-import` ->
`@dextinity/no-other-module-relative-import`

### Patch Changes

-   Updated dependencies [f843a5e]
    -   @dextinity/eslint-plugin@10.0.0

## @dextinity/eslint-plugin@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/eslint-plugin` to `@dextinity/eslint-plugin`

      Update the dependency in `package.json`.

      **Breaking changes**

- Register the plugin under the `@dextinity` namespace instead of
`@comet`. Rule names change accordingly, for instance,
`@comet/no-private-sibling-import` ->
`@dextinity/no-private-sibling-import`

## @dextinity/mail-react@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/mail-react` to `@dextinity/mail-react`

      Update the dependency in `package.json` and all imports:

    ```diff
    - import { MjmlPixelImageBlock } from "@comet/mail-react";
    + import { MjmlPixelImageBlock } from "@dextinity/mail-react";
    ```

## @dextinity/site-nextjs@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/site-nextjs` to `@dextinity/site-nextjs`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename the `cometType` property of iframe messages to `dextinityType`.
A matching `@dextinity/cms-admin` version is required
- Rename the site preview cookie from `__comet_site_preview` to
`__dextinity_site_preview`. A matching `@dextinity/cms-api` version is
required

### Patch Changes

-   Updated dependencies [f843a5e]
    -   @dextinity/site-react@10.0.0

## @dextinity/site-react@10.0.0

### Major Changes

-   f843a5e: Rename `@comet/site-react` to `@dextinity/site-react`

      Update the dependency in `package.json` and all imports.

      **Breaking changes**

- Rename the `cometType` property of iframe messages to `dextinityType`.
A matching `@dextinity/cms-admin` version is required
- Rename the window property of `useLocalStorageCookieApi` from
`window.cometLocalStorageCookieApi` to
`window.dextinityLocalStorageCookieApi` and its localStorage key from
`comet-dev-cookie-api-consented-cookies` to
`dextinity-dev-cookie-api-consented-cookies`. Previously consented
cookies are therefore reset in local development

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Johannes Obermair <johannes.obermair@vivid-planet.com>
The blocks sit beside the existing shared ones rather than under either
mail: nothing in a button, a spacer or an image is specific to a welcome
mail or to a campaign.

Both mails take their image render width from the theme rather than a
constant, so they size images the same way, and changing the body width
or the content indentation does not leave an image rendering at the old
size.

<img width="988" height="969" alt="Screenshot 2026-08-13 at 14 48 50"
src="https://github.com/user-attachments/assets/890070e0-d55c-4edc-8ede-76869caa027a"
/>

---------

Co-authored-by: Ricky Smith <jamesricky@me.com>
## Problem

When a request fails with a GraphQL error, the error dialog shows
`Unknown error` instead of the actual message.

## Cause

`createErrorDialogApolloLink` assigns `error` only in the `networkError`
branch. The `graphQLErrors` branch sets `errorType` but never `error`,
so the dialog falls back to `"Unknown error"`.

The missing `error = graphQLErrors.map(({ message }) => message)` was
dropped while resolving the auth error conflicts when `main` was merged
into `next` before v7
([`20eb0fa`](20eb0fa))
— which is also why the `if (!error)` guard in the network branch has
been dead code since.

## Fix

The link passes the messages of all GraphQL errors to the dialog again.
Network errors are unchanged, and GraphQL errors take precedence over an
accompanying network error, as the guard intended.

Nothing is newly exposed in production: `ExceptionFilter` in
`@dextinity/cms-api` already masks unexpected errors as `Internal Server
Error` when `debug` is off.

## Screenshots/screencasts

Demo Admin, opening a product with an ID that does not exist — the API
answers with `Product not found ('00000000-…')`:

| Before | After |
| ------ | ----- |
| <img width="2048" height="972" alt="errordialogbefore"
src="https://github.com/user-attachments/assets/77e98b5d-9bf7-4062-960d-0a859cd16b0c"
/> | <img width="2048" height="972" alt="errordialogafter"
src="https://github.com/user-attachments/assets/06dca171-45ec-4fed-bb99-0ebc7ee2c0d6"
/> |

## Verification

Tests cover the three paths through the link: a GraphQL-only error, a
network-only error, and a `ServerError` carrying GraphQL errors in its
result. The first and third fail without the fix.

Co-authored-by: Claude <noreply@anthropic.com>
…les (#6205)

## Problem

`@dextinity/agent-features` ships empty. The published tarball contains
nothing but `package.json` and `LICENSE`, so `dextinity
install-agent-features` finds no skills and no rules in it.

Every release since `@comet/agent-features` v9.4.0 is affected,
including the current `@dextinity/agent-features` v10.0.0:

| Version | Files in the tarball |
| --- | --- |
| `@comet/agent-features@9.3.0` | 39 |
| `@comet/agent-features@9.4.0` | 2 |
| `@dextinity/agent-features@10.0.0` | 2 |

## Cause

The package's `skills/` and `rules/` folders were symlinks to the
folders at the repository root. pnpm stopped following symlinked
directories when packing in v11, so the `skills/**` and `rules/**`
patterns in `files` matched nothing.

Nothing in the package itself changed — its `package.json` is
byte-identical between 9.3.0 and 9.4.0. The break lines up exactly with
#6176: the last canary packed before it merged contains 39 files, the
first one after it contains 2.

## Fix

The package builds its `skills/` and `rules/` folders instead of
symlinking them, like every other package in the repository builds its
`lib/`. The `build` script copies both folders in from the repository
root and fails when either is missing or empty, so a regression of this
kind breaks the release instead of publishing silently. The copies are
gitignored.

## Verification

- `pnpm pack --dry-run` lists 37 skill and rule files (25 skills, 12
rules), matching what 9.3.0 shipped.
- `build` runs through the existing `build:packages` step of `pnpm run
publish`, which covers the release, beta and canary workflows.

## Further information

- Published contents: [`@comet/agent-features`
9.3.0](https://www.npmjs.com/package/@comet/agent-features/v/9.3.0?activeTab=code)
vs.
[9.4.0](https://www.npmjs.com/package/@comet/agent-features/v/9.4.0?activeTab=code)
- Task: https://vivid-planet.atlassian.net/browse/COM-3128

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_0181iiTBFCfqvBjEwjzxEEzm

---------

Co-authored-by: Claude <noreply@anthropic.com>
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @dextinity/admin@10.0.1

### Patch Changes

-   48748b0: Show the GraphQL error messages in the error dialog again

`createErrorDialogApolloLink` only passed the message of network errors
to the `ErrorDialog`.
For GraphQL errors, the dialog showed "Unknown error" instead of the
actual messages (e.g., the message of a `BadRequestException` thrown by
the API).

    -   @dextinity/admin-icons@10.0.1

## @dextinity/admin-color-picker@10.0.1

### Patch Changes

-   Updated dependencies [48748b0]
    -   @dextinity/admin@10.0.1
    -   @dextinity/admin-icons@10.0.1

## @dextinity/admin-date-time@10.0.1

### Patch Changes

-   Updated dependencies [48748b0]
    -   @dextinity/admin@10.0.1
    -   @dextinity/admin-icons@10.0.1

## @dextinity/admin-generator@10.0.1

### Patch Changes

-   Updated dependencies [48748b0]
    -   @dextinity/admin@10.0.1
    -   @dextinity/cms-admin@10.0.1
    -   @dextinity/admin-icons@10.0.1

## @dextinity/admin-rte@10.0.1

### Patch Changes

-   Updated dependencies [48748b0]
    -   @dextinity/admin@10.0.1
    -   @dextinity/admin-icons@10.0.1

## @dextinity/brevo-admin@10.0.1

### Patch Changes

-   Updated dependencies [48748b0]
    -   @dextinity/admin@10.0.1
    -   @dextinity/admin-date-time@10.0.1
    -   @dextinity/cms-admin@10.0.1
    -   @dextinity/admin-icons@10.0.1

## @dextinity/cms-admin@10.0.1

### Patch Changes

-   Updated dependencies [48748b0]
    -   @dextinity/admin@10.0.1
    -   @dextinity/admin-date-time@10.0.1
    -   @dextinity/admin-rte@10.0.1
    -   @dextinity/admin-icons@10.0.1

## @dextinity/agent-features@10.0.1

### Patch Changes

- 823d663: Fix the package being published without any skills and rules

The `skills/` and `rules/` folders were symlinked to the folders at the
repository root. Since pnpm v11 no longer follows symlinked directories
when packing, every release since `@comet/agent-features` v9.4.0
contained nothing but the manifest, so `dextinity
install-agent-features` found no skills or rules to install. The folders
are copied into the package when it's built now.

## @dextinity/api-generator@10.0.1

### Patch Changes

-   @dextinity/cms-api@10.0.1

## @dextinity/brevo-api@10.0.1

### Patch Changes

-   @dextinity/cms-api@10.0.1

## @dextinity/eslint-config@10.0.1

### Patch Changes

-   @dextinity/eslint-plugin@10.0.1

## @dextinity/site-nextjs@10.0.1

### Patch Changes

-   @dextinity/site-react@10.0.1

## @dextinity/admin-babel-preset@10.0.1



## @dextinity/admin-icons@10.0.1



## @dextinity/cms-api@10.0.1



## @dextinity/cli@10.0.1



## @dextinity/eslint-plugin@10.0.1



## @dextinity/mail-react@10.0.1



## @dextinity/site-react@10.0.1

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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