Skip to content

v0.0.1-rc.1

Pre-release
Pre-release

Choose a tag to compare

@ness-EE ness-EE released this 07 Jul 13:47
d429c27

What's Changed

  • docs: remove references to removed specs by @ness-EE in #160
  • chore: update org references for bojectify transfer by @ness-EE in #161
  • fix(entry-editor-pane): a11y pass — dialog semantics, focus trap, keyboard close by @ness-EE in #162
  • fix(graphql): expose IMAGE fields via shared ImageFile object type by @ness-EE in #164
  • fix(webhooks): close DNS-rebinding SSRF bypass (#103) by @ness-EE in #167
  • chore(ui): brand pass — fonts, palettes, semantic surfaces, label alignment by @ness-EE in #168
  • feat: API Key CLI + REST endpoints by @ness-EE in #170
  • feat(cli): boject perf CLI — read-only path (#126) by @ness-EE in #173
  • docs(cli): note localhost ephemeral-port limit when running graphql-flat by @ness-EE in #174
  • feat(cli): schema-aware perf seed generator + CLI seeded mode (#159) by @ness-EE in #175
  • feat(cms): content:write API key scope + writable paths (#172) by @ness-EE in #176
  • chore: perf db task by @ness-EE in #178
  • feat(cli): --allow-database flag for perf DB-name guard (#182) by @ness-EE in #188
  • feat(cli): mode-aware perf metadata.json + conditional banner (#181) by @ness-EE in #189
  • feat(cli): --http-seed end-to-end + content:write preflight + rate-limit log (#183) by @ness-EE in #190
  • feat(cli): pg-sampler re-vendor + DB connection-pool panel (#180) by @ness-EE in #192
  • feat(cli): rest-crud-cycle scenario + Bearer-auth refactor (#179) by @ness-EE in #193
  • feat(cli): skip seed step for rest-crud-cycle (#195) by @ness-EE in #196
  • chore: gitignore perf CLI cwd artifacts at repo root by @ness-EE in #197
  • feat(cli): graceful uniqueness-conflict handling in writeViaSql + writeViaHttp (#194) by @ness-EE in #198
  • feat(cli): cascade-skip entries whose references were skipped (#199) by @ness-EE in #200
  • docs(cli): harden --allow-database + reset destructive-surface copy (#191) by @ness-EE in #201
  • chore(cli): writeViaSql real-pg integration test (#186) by @ness-EE in #202
  • feat(cli)!: remove --http-seed transport from @boject/cli (closes #184) by @ness-EE in #203
  • feat(cli): auto-synthesize IMAGE field JSON during perf seed (#185) by @ness-EE in #204
  • fix(cli): portable bundles work end-to-end through perf seed by @ness-EE in #206
  • chore(cms): PR #176 cleanup follow-ups (#187) by @ness-EE in #207
  • feat!: portable entry refs as stored immutable entryKey (#205) by @ness-EE in #208
  • chore(cms): richtext editor follow-ups (#118) by @ness-EE in #209
  • chore(cms): tighten richtext walker/validator/enricher test coverage (#116) by @ness-EE in #210
  • refactor(cms): dedupe parseEntryData + FieldTypeOptions slot (#117) by @ness-EE in #211
  • refactor(cms): typed FieldOptions discriminated union (#117 task 3) by @ness-EE in #213
  • docs: refresh Perf CLI entry in CLAUDE.md by @ness-EE in #215
  • fix(cms): validate RELATION/MULTIRELATION options on PUT field (#214) by @ness-EE in #216
  • fix(cms): drop pre-seeded SLUG row from content-type create form (#212) by @ness-EE in #217
  • feat(cms,cli): GraphQL query complexity scoring (#122) by @ness-EE in #218
  • chore: upgrade pnpm 10 → 11.1.2 with supply-chain hardening by @ness-EE in #233
  • chore: containerised dev environment for supply-chain hardening by @ness-EE in #237
  • docs: split root README into workspace + CMS-specific docs (#238) by @ness-EE in #239
  • fix(cms): make prisma studio scripts dev-container friendly by @ness-EE in #240
  • refactor(test): pull integration-test DB URLs behind env-overridable helpers (#236) by @ness-EE in #241
  • docs: surface PERF_DATABASE_URL in .env.example + docker-compose by @ness-EE in #242
  • refactor: DRY fake DB in CLI by @ness-EE in #243
  • fix(test): use local prisma + fall back on empty env var by @ness-EE in #244
  • chore(devcontainer): install Wallaby + replace deprecated typescript.tsdk by @ness-EE in #245
  • fix(perf): fall back on empty PERF_DATABASE_URL by @ness-EE in #246
  • chore(dev-container): mount .git read-only instead of hiding it by @ness-EE in #247
  • chore: tidy up devcontainer extensions by @ness-EE in #248
  • chore: add nuke:packages script for workspace dep-tree recovery by @ness-EE in #249
  • refactor(cms): break webhookUrl ↔ resolvePublicHost circular dependency by @ness-EE in #250
  • Richer 429 error shape (REST + GraphQL) by @ness-EE in #251
  • GraphQL rate-limit + cost headers by @ness-EE in #252
  • Drop unnecessary as-unknown-as casts where direct casts work by @ness-EE in #253
  • Consolidate FieldType literals into a shared FIELD_TYPES registry by @ness-EE in #266
  • Consolidate ContentStatus literals into a shared CONTENT_STATUSES registry by @ness-EE in #267
  • Workspace-wide lint coverage + single typecheck job by @ness-EE in #269
  • Bundle format versioning + migrate() runner (closes #32) by @ness-EE in #268
  • Drop dev-targeted prisma:seed; replace with scoped commands by @ness-EE in #270
  • Entry conflict-handling flags (--on-conflict, --dry-run) (closes #29) by @ness-EE in #271
  • Flaky account-password test fix + honest Prisma.DbNull cast in importBundle by @ness-EE in #272
  • Content bundle: include image bytes (sidecar layout) (#31) by @ness-EE in #273
  • Content bundle: remote entries import (closes #28) by @ness-EE in #275
  • fix(cli): guard entries export against trailing-slash redirects and non-JSON 200s by @ness-EE in #280
  • Guard non-portable bundle import against dangling cross-entry references (closes #276) by @ness-EE in #278
  • fix(cli): fall back to data.message when the top-level error message is empty by @ness-EE in #282
  • fix(content-bundle): surface import error message at top-level for RE… by @ness-EE in #284
  • test(content-bundle): extract test fixtures into co-located .fixtures.ts files by @ness-EE in #285
  • docs: add in the native set-up docs by @ness-EE in #286
  • feat(content-bundle): tarball (.tar.gz) wire format for the local CLI by @ness-EE in #287
  • docs: document backup & disaster recovery; close #30 by @ness-EE in #288
  • fix(content-bundle): portable dangling ref import returns 400, not 500 by @ness-EE in #289
  • Test/scope fileparallelism integration by @ness-EE in #290
  • perf(content): fetch one version per entry on /api/content + /api/content-entries (#264) by @ness-EE in #291
  • feat(search): Meilisearch infrastructure + connection plumbing (#221) by @ness-EE in #292
  • feat(search): entry → search document transformer (#222) by @ness-EE in #293
  • feat(webhooks): CONTENT_TYPE_SCHEMA_CHANGED event (#220) by @ness-EE in #295
  • chore(search): test harness + entries_test index (#223) by @ness-EE in #296
  • feat(search): reindex command — pnpm search:reindex (#226) by @ness-EE in #297
  • feat(search): syncToSearchIndex handler (#225) by @ness-EE in #298
  • feat(webhooks): internal-transport WebhookDelivery for search sync (#224) by @ness-EE in #299
  • feat(search): public /api/search REST + searchEntries GraphQL field (#227) by @ness-EE in #300
  • Search: query builder Vue component by @ness-EE in #309
  • chore: add dev container allowlist by @ness-EE in #313
  • chore: free registry port 5555 and isolate dev-registries compose pro… by @ness-EE in #314
  • Search: query builder wire-up + Meilisearch compiler by @ness-EE in #310
  • Search: query-builder QA polish (draft-chip focus, launcher bar, ENTRY_TITLE, snippet gate) by @ness-EE in #317
  • Search: re-edit a committed filter chip in the query builder by @ness-EE in #318
  • chore: test tasks by @ness-EE in #319
  • Search: keyboard navigation + WAI-ARIA listbox for the query builder by @ness-EE in #320
  • Search: persist results pagination in the URL by @ness-EE in #321
  • Search: render results through ContentTable; retire SearchResults by @ness-EE in #325
  • Search: keep input focus after removing a filter chip with the mouse by @ness-EE in #326
  • refactor(search): extract shared QueryChips chip-row component (#323) by @ness-EE in #327
  • feat(search): resolve RELATION filter chip values to entry titles (#322) by @ness-EE in #328
  • feat(search): per-field-type filter operators on /api/search + GraphQL (backend) (#301) by @ness-EE in #329
  • fix(content-entries): fire ENTRY_PUBLISHED when a new entry is published on create (#330) by @ness-EE in #331
  • feat(search): surface single-value rich operators in the ⌘K palette (#332) by @ness-EE in #343
  • feat(search): multi-value list filter editors in the ⌘K palette (#333) by @ness-EE in #347
  • feat(search): DATETIME calendar editors in the ⌘K palette (#345) by @ness-EE in #348
  • feat(search): widen the ⌘K palette to 1080px + wrap filter chips (#346) by @ness-EE in #349
  • feat(search): filter by envelope/system fields — entry title + $entryKey (#315) by @ness-EE in #350
  • feat(search): index DRAFT/CHANGED versions + status filter (#302) by @ness-EE in #351
  • refactor(search): STEPS object-const for query-builder Step values (#353) by @ness-EE in #354
  • feat(search): bulk publish on search results + row selection (#304) by @ness-EE in #356
  • fix(search): $status filter scopes to the working version (editorial status) by @ness-EE in #357
  • fix(search): palette submit button + keep focus after a pointer toggle by @ness-EE in #358
  • feat(search): results-table field columns + column picker — data grid (#303) by @ness-EE in #361
  • fix(search): re-edit the in-progress draft's operator in the query builder (#360) by @ness-EE in #362
  • fix(search): persist + edit free-text q as a chip in the ⌘K palette (#363) by @ness-EE in #365
  • docs(search): note FreeTextChip + free-text q chip in CLAUDE.md (#363) by @ness-EE in #366
  • fix(ui): size the archive filter control to match the New Entry button by @ness-EE in #367
  • fix(search): cap the ⌘K palette height + scroll the option list (#364) by @ness-EE in #368
  • feat(search): field-type icon + label on the ⌘K palette field rows (#369) by @ness-EE in #370
  • feat(search): "is not set" / "is set" (empty/null) filter operators (#359) by @ness-EE in #371
  • docs(search): final search-epic docs pass — operator README + env row (#230) by @ness-EE in #372
  • feat: per-field default values (BOOLEAN/NUMBER/SELECT), applied at create (#344) by @ness-EE in #373
  • feat(editor): clearable optional SELECT in the entry editor (#374) by @ness-EE in #375
  • chore(cache): stand up dormant Redis cache backend (#255) by @ness-EE in #377
  • docs(cache): document the Redis sidecar + REDIS_URL (#255) by @ness-EE in #378
  • refactor(api): rename /api/content-entries → /api/entries (#382) by @ness-EE in #383
  • refactor(search): migrate SearchPalette picker to /api/entries (#380) by @ness-EE in #384
  • refactor(api): rename /api/content → /api/all-content (#381) by @ness-EE in #385
  • perf: admin cursor (keyset) pagination + keyset infrastructure (#265) by @ness-EE in #386
  • feat: public /api/public/entries read endpoint + /api/public/* namespace (#256) by @ness-EE in #387
  • fix(graphql): reserve envelope field identifiers so a colliding field can't crash the schema build by @ness-EE in #388
  • feat(cache): tagged cache primitive over useStorage + native redis sets (#258) by @ness-EE in #389
  • docs: split CMS guidance into nested apps/cms/CLAUDE.md by @ness-EE in #390
  • feat(cache): public read cache-aside + content-type tag on /api/public/entries (#259) by @ness-EE in #391
  • feat(cache): internal cache-invalidation subscriber (#261) by @ness-EE in #392
  • feat(cache): GraphQL response cache plugin (#260) by @ness-EE in #394
  • feat(public-write): /api/public/entries write surface (#376) by @ness-EE in #397
  • perf(crud): migrate rest-crud-cycle to the public namespace (#395) by @ness-EE in #398
  • feat(auth): default-deny token allowlist — admin content session-only (#257) by @ness-EE in #400
  • test(cache): cache test infrastructure — FLUSHDB-DB1 + cacheAssertions harness (#262) by @ness-EE in #402
  • Feat/263 caching docs by @ness-EE in #403
  • fix(test): reset boject_test after every integration file (independent-run isolation) (#406) by @ness-EE in #408
  • feat: bulk writes fire cache + search reconcile events (#393) by @ness-EE in #407
  • fix: content-bundle scripts boot under tsx in the docker image (#405) by @ness-EE in #410
  • test: parallelize the integration suite with per-worker isolated resources (#409) by @ness-EE in #411
  • test: sweep orphaned worker resources + coverage follow-ups (#412) by @ness-EE in #413
  • refactor: drop dead API-key version-resolution branches from admin content reads (#399) by @ness-EE in #414
  • refactor: drop dead API-key version-resolution branches from admin co… by @ness-EE in #415
  • test: retrofit existing cache tests onto the #262 cacheAssertions harness (#401) by @ness-EE in #416
  • First Release: adopt BSL 1.1 licensing (#334) by @ness-EE in #417
  • First Release: npm publish config + package metadata (#335) by @ness-EE in #419
  • First Release: PR CI + trusted-publish workflows (#337) by @ness-EE in #421
  • First Release: publish multi-arch CMS image to GHCR (#336) by @ness-EE in #422
  • chore: globally gitignore .env files (#341 pre-public hardening) by @ness-EE in #423
  • ci: bump TEST_MAX_WORKERS 2 → 4 now the repo is public (#337) by @ness-EE in #424
  • fix(#336): smoke-test CI gate — readable schema mount + non-silent apply-schema by @ness-EE in #425
  • First Release: release pipeline — version coordination + tag-push publish (#338) by @ness-EE in #426
  • First Release: security + dependency pre-release audit (#341) by @ness-EE in #427
  • docs(#340): public-audience README + per-package npm badges/license by @ness-EE in #428
  • docs(#339): community health files (CONTRIBUTING, CoC, SECURITY, templates) by @ness-EE in #430
  • chore(deps-dev): bump nuxt from 4.3.1 to 4.4.7 by @dependabot[bot] in #429
  • chore: add Dependabot config (npm + actions + docker) by @ness-EE in #431
  • chore(#342): Contributor License Agreement + CLA Assistant enforcement by @ness-EE in #435
  • chore(release): publish v0.0.1-rc.1 by @ness-EE in #437

New Contributors

Full Changelog: https://github.com/bojectify/boject-cms/commits/v0.0.1-rc.1