Repository navigation
chore: merge main into campaign/integration - #755
Merged
Merged
Conversation
* 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
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
mainmoved 5 commits past the last merge-main (#699, which tookmainat 9073cd0): @antelopejs/interface-dms 0.10.4, #734, #666, @antelopejs/dms 0.15.1 and #753. This PR mergesmain(3aeb233) intocampaign/integration(8a2c914) as a real merge commit, somainbecomes an ancestor of the branch. Nothing is pushed tomain.What main brought
useInstalledModules), with its tests.@antelopejs/interface-dms0.10.4.npx @antelopejs/core project init ... --template <slug>.packages/dms0.15.1 andpackages/interface-dms0.10.4 (CHANGELOG entries,docs-data/blocks.jsondmsVersion).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:README.md,packages/dms/README.mdnpx @antelopejs/core project init my-app --template dms-democommand in place of the global install.packages/dms/docs/01.getting-started/01.introduction.mdpackages/dms/docs/01.getting-started/03.quickstart.mdnpxcommand and the--template dms-adonisslug. The step no longer asks to install the CLI first.packages/dms/docs/01.getting-started/07.adonisjs.mdnpx ... --template dms-adoniscommand.packages/dms/package.json@antelopejs/interface-dms >=0.12.0 <0.13.0(it covers #734's 0.10.4 floor).packages/interface-dms/package.jsonpnpm-lock.yamlpnpm install. Nothing changed.No tarball pin changed, and no producer re-pin was needed: integration's decorators pin
4a959c7already hastestHashAsync, and the dms-frontend pine07a04ais that repo's integration tip.guardrails.ratchet.jsonstays deleted, and the merge adds no lint directive or suppression.packages/*/srcis 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.git merge-tree --write-tree --merge-base=origin/main origin/main 14c1cbbgivesa32ccc9, this head's tree. A plaingit merge-tree origin/main 14c1cbbis clean and gives the same tree.