Skip to content

chore: merge main into campaign/integration - #755

Merged
Upd4ting merged 42 commits into
campaign/integrationfrom
chore/merge-main-2026-11-04
Nov 4, 2026
Merged

Upd4ting merged 42 commits into
campaign/integrationfrom
chore/merge-main-2026-11-04

Conversation

@Upd4ting

@Upd4ting Upd4ting commented Nov 4, 2026

Copy link
Copy Markdown
Member

Why

main moved 5 commits past the last merge-main (#699, which took main at 9073cd0): @antelopejs/interface-dms 0.10.4, #734, #666, @antelopejs/dms 0.15.1 and #753. This PR merges main (3aeb233) into campaign/integration (8a2c914) as a real merge commit, so main becomes an ancestor of the branch. Nothing is pushed to main.

What main brought

How conflicts were resolved

The plain merge conflicts on 45 paths, because #699 was squashed and its history is not shared with main. The resolution replays only main's changes since 9073cd0 onto integration (git merge-tree --merge-base=9073cd0), which conflicts on 8 files:

File Resolution
README.md, packages/dms/README.md Integration's prose (docs standard), with main's npx @antelopejs/core project init my-app --template dms-demo command in place of the global install.
packages/dms/docs/01.getting-started/01.introduction.md Integration's list.
packages/dms/docs/01.getting-started/03.quickstart.md Integration's prose, with main's npx command and the --template dms-adonis slug. The step no longer asks to install the CLI first.
packages/dms/docs/01.getting-started/07.adonisjs.md Integration's prerequisite line, with main's npx ... --template dms-adonis command.
packages/dms/package.json Main's 0.15.1. Integration's tarball pins and @antelopejs/interface-dms >=0.12.0 <0.13.0 (it covers #734's 0.10.4 floor).
packages/interface-dms/package.json Integration's 0.12.0, the planned unpublished version that the dms range needs (same call as #699). Main's 0.10.4 CHANGELOG entry is kept.
pnpm-lock.yaml Integration's lockfile, regenerated with pnpm install. Nothing changed.

No tarball pin changed, and no producer re-pin was needed: integration's decorators pin 4a959c7 already has testHashAsync, and the dms-frontend pin e07a04a is that repo's integration tip. guardrails.ratchet.json stays deleted, and the merge adds no lint directive or suppression. packages/*/src is unchanged against integration, so the public API is the same.

Checks

  • GITHUB_BASE_REF=campaign/integration pnpm run checks: Checks: 8 passed, 0 failed.
  • pnpm --dir packages/dms/frontend-vue test: Test Files 439 passed (439), Tests 3188 passed | 1 skipped (3189).
  • pnpm --dir packages/dms/frontend-vue typecheck: passed.
  • Pre-commit and pre-push hooks ran.
  • Content test: git merge-tree --write-tree --merge-base=origin/main origin/main 14c1cbb gives a32ccc9, this head's tree. A plain git merge-tree origin/main 14c1cbb is clean and gives the same tree.

Upd4ting and others added 30 commits November 1, 2026 00:12
* docs(readme): rewrite the README as a landing page

Lead with the pitch, a hero recording, a one-command start, features, limits, and how the project earns money. Developer and contributing sections follow unchanged, except renamed headings.

* docs(readme): claim PostgreSQL Connect only and state the review limits

* docs(readme): add launch media

* docs(readme): use the v2 Meet media and name three databases

Replace docs/media with the v2 GIFs, the 72 s Meet video and its poster. Restore the four original badges. Name PostgreSQL, MongoDB or RethinkDB and drop the lines saying two of them fail.

* docs(readme): remove the limits section

* docs(readme): update launch media

Re-render the Meet video and the roles GIF with the chapter label Databases instead of Limits.

* docs(readme): use one Discord invite

* docs(readme): point the sample and own-database paths to the templates

The sample-database path clones template-dms-connect-demo and names the Compose profiles that choose MongoDB or RethinkDB. The own-database path starts from template-dms.

* docs(readme): switch to the new Discord invite
…#586)

* test(chart): a bare chart fed one point per group draws them

* fix(chart): draw the one point per group a series data source answers
* feat(table-view): count batches over bounded GET requests

* feat(frontend): present read-only refusals once without hiding failure

* feat(auth): prefill login from public demo configuration

* refactor(frontend): rely on dms-frontend 0.9.2 for raw fetch hooks

dms-frontend 0.9.2 makes `.raw()` inherit the defaults and hooks of a created fetch. useAuthFetch no longer passes its hooks to every call itself; it only adds the read-only refusal to its existing response-error hook.
The GET count batch route of #581 ships in interface-dms 0.10.1.
* test(chart): a route answering a shape the chart does not read leaves the page whole

* fix(chart): draw only the fetched series that carry their points
@antelopejs-private/dms-cicd is archived and no longer published, so the
module store must not offer it.
)

* test(tenants): cover interrupted default tenant provisioning

* fix(tenants): resume the default tenant's provisioning after start (#350)

Add optional Tenant.provisioningPending to persist unfinished default tenant provisioning. Rows without the marker remain provisioned. Clear it only after provisioning resolves, and retain the row and log the original error on failure.

Run pending provisioning on ModulesStarted, outside start(), and wait for active work during stop(). Require interface-core 0.2.6 for that lifecycle event.
…ered (#442)

On a first visit without the dms-keyboard-platform cookie, a component created while the page hydrates draws the platform the server rendered until it mounts, so Mac visitors no longer get Ctrl/⌘ hydration mismatches.
…tform (#541)

A dms-ui plugin provides the dashboard's keyboard platform to Nuxt UI key hints, so <UKbd value="meta|ctrl|alt"> prints the key in the server HTML instead of a blank, and the UI toolkit docs describe the per-platform glyphs.
…tion include it (#441)

Declare the dms playground's dmsFrontend so ajs dms dev, build and start serve its pages, components and public webhook again, guard every package that ships frontend-vue/ with check:frontend-declarations in CI, ignore .dms-frontend, and document the dmsFrontend contract.
* test(frontend): specify unified API error presentation

* fix(frontend): unify API error presentation

Route core request failures through the shared presenter and resolver. Keep
Response-scoped toast claims separate from inline resolution and preserve
caller fallbacks, field placement, retry, and cleanup.

Export the local invariant and bounded migration script for module callers.
The pending tenant provisioning field of #613 ships in interface-dms 0.10.2.
* test(frontend): run the API error CLIs through a symlinked install path

* fix(frontend): run the API error CLIs when pnpm links the package

Node resolves import.meta.url to the real file while process.argv[1] keeps the
symlinked node_modules path, so both CLIs skipped their work and exited 0.
BREAKING CHANGE: remove useApiError and the API error presenter codemod export. Capture useApiErrorPresenter during setup instead.
…ment (#585)

Chart, ChartCard, KpiCard, TopListCard and TableView now carry
data-dms-block-state (loading, ok, empty, error), data-dms-block-type and,
when a page places them, data-dms-block (the layout path). An overlay or a
test harness reads what a block shows without parsing its markup.
… a new route (#611)

* feat(data-types): add a currency option to PriceType

* fix(table-view): stop drawing the counters' skeleton once their request has failed

* fix(table-view): offer no add action on a controller with no new route
…608 as Aug 2026 (#617)

* fix(interface-dms): name a bucketed series' periods for a person, 202608 as Aug 2026

* feat(interface-dms): name a week bucket by its Monday, as Week of Aug 3

* test(dms): merge locale trees with the shared object guard
Upd4ting and others added 12 commits November 2, 2026 17:32
A successful sign-in writes the password again when isHashOutdated reports an
older hash. The write applies only while the row holds the tested hash, and a
failed write does not fail the sign-in.

Password tests run on the thread pool, and a right password is checked against
the throttle again after its test.
)

A fresh instance was claimable by its first visitor: POST /api/onboarding/register
only checked that no user existed. The call now needs the instance's setup token,
from DMS_SETUP_TOKEN or generated at first start and kept in the database so every
replica accepts it. The wizard reads it from ?token=, removes it from the URL and
asks for it when absent. Registering spends the token with one delete, so two
concurrent valid registrations create one owner.

Fixes #624
…gh a renewed lease (#657)

* test(tenants): cover two replicas provisioning the default tenant

* fix(tenants): elect one replica to provision the default tenant through a renewed lease

* docs(tenants): state who runs the provisioning hook and derive the test's hold

* docs(tenants): say a stalled provisioning holder can be taken over
… layout (#675)

* perf(page): send anonymous visitors only the public pages of the site layout

* test(page): find the private page through the owner, not the anonymous layout
…age (#666)

* test(layout): the sidebar badge counts the installed modules the Modules page lists

* fix(layout): count the sidebar's installed modules like the Modules page

The badge counted the module roots of the site layout tree, so an installed
module that registers no pages, such as the Builder, was left out while the
Modules page listed it. Both now read the list from useInstalledModules.

* test(layout): the sidebar badge renders without the store listing on the server

* fix(layout): read the sidebar's module count in the browser, not in the server render

* test(layout): the sidebar badge shows no count until the store listing is read

* fix(layout): show the sidebar count only once the store listing is read
* docs(readme): start the demos with npx @antelopejs/core

Replace template clones with npx @antelopejs/core project init and template slugs, drop the .env and manual install steps from the demo quick start, and point first-run text at the onboarding address with the setup token that the backend prints.

* docs(playground): drop the EU hosting claim for AntelopeJS Cloud

* docs: list Git as a prerequisite of project init

* docs(readme): list pnpm for the Docker demos

* docs(readme): drop pnpm from the Docker prerequisites
Bring main's commits since the 2026-11-03 merge (9073cd0..3aeb233):
@antelopejs/dms 0.15.1, @antelopejs/interface-dms 0.10.4, #666, #734
and #753.
@Upd4ting
Upd4ting merged commit a9df9ad into campaign/integration Nov 4, 2026
17 checks passed
@Upd4ting
Upd4ting deleted the chore/merge-main-2026-11-04 branch November 4, 2026 14:39
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.

2 participants