Skip to content

update events and jobs syntax#54

Merged
cobraprojects merged 4 commits into
mainfrom
update-events-and-jobs
Jun 19, 2026
Merged

update events and jobs syntax#54
cobraprojects merged 4 commits into
mainfrom
update-events-and-jobs

Conversation

@cobraprojects

@cobraprojects cobraprojects commented Jun 19, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Redesigned the documentation site landing page
    • Event definitions now support direct typed .dispatch()
    • Queue jobs now support direct typed .dispatch() and .dispatchSync()
    • Blog post create/update/delete now triggers typed events and queued indexing jobs
  • Documentation

    • Improved deployment guidance with a clearer web + worker runtime model
    • Updated event and queue dispatch examples to emphasize primary typed entrypoints
    • Clarified discovery refresh timing and generated registries behavior
    • Expanded production guidance for supervised queue workers (async drivers)
  • Chores

    • Improved generated queue/media/auth-related migrations (safer escaping and untyped migration signatures)

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d130d15c-f49b-4fda-914b-3931cb03dd7a

📥 Commits

Reviewing files that changed from the base of the PR and between 44427a2 and c6b0ee9.

📒 Files selected for processing (11)
  • apps/blog-next/server/lib/blog.ts
  • apps/blog-next/server/listeners/blog/index-saved-post.ts
  • apps/blog-nuxt/server/lib/blog.ts
  • apps/blog-nuxt/server/listeners/blog/index-saved-post.ts
  • apps/blog-sveltekit/server/listeners/blog/index-saved-post.ts
  • apps/blog-sveltekit/src/routes/admin/posts/+page.server.ts
  • apps/blog-sveltekit/src/routes/admin/posts/[id]/edit/+page.server.ts
  • apps/blog-sveltekit/src/routes/admin/posts/new/+page.server.ts
  • netlify.toml
  • packages/cli/src/queue-migrations.ts
  • packages/cli/tests/queue-migrations.test.ts
💤 Files with no reviewable changes (5)
  • apps/blog-sveltekit/src/routes/admin/posts/new/+page.server.ts
  • apps/blog-sveltekit/src/routes/admin/posts/+page.server.ts
  • apps/blog-sveltekit/src/routes/admin/posts/[id]/edit/+page.server.ts
  • apps/blog-next/server/lib/blog.ts
  • apps/blog-nuxt/server/lib/blog.ts
🚧 Files skipped from review as they are similar to previous changes (4)
  • apps/blog-next/server/listeners/blog/index-saved-post.ts
  • apps/blog-sveltekit/server/listeners/blog/index-saved-post.ts
  • apps/blog-nuxt/server/listeners/blog/index-saved-post.ts
  • packages/cli/src/queue-migrations.ts

📝 Walkthrough

Walkthrough

Adds typed dispatch()/dispatchSync() methods directly on event and queue job definition objects, backed by global dispatcher singletons wired in at runtime startup with registration-time name mapping for queue jobs. Simultaneously refreshes documentation with a new Vue SFC landing page, a rewritten deployment model page, corrected holo dev/holo build discovery workflow references, updated dispatch API examples throughout, and implements post-save event dispatch and background job indexing across three blog frameworks with new database migrations.

Changes

Typed dispatch methods on event and queue job definitions

Layer / File(s) Summary
Event definition dispatch contract and infrastructure
packages/events/src/contracts.ts, packages/events/src/index.ts
Adds EventDefinitionDispatcher global singleton with getter/setter, dispatchDefinedEvent guard function, exported DefinedEventDefinition interface extending EventDefinition with dispatch(payload) method, refactors defineEvent to attach non-enumerable dispatch method on frozen result, and re-exports the new type.
Events runtime wiring and tests
packages/events/src/runtime.ts, packages/events/tests/contracts.test.ts, packages/events/tests/contracts.type.test.ts, packages/events/tests/runtime.test.ts
Registers dispatchEvent as the event-definition dispatcher at runtime startup; adds contract tests for dispatch existence and frozen enumerable keys, pre-load guard test that throws before dispatcher is set, type tests for valid/invalid payload shapes, and runtime integration test dispatching through event definition with result shape verification.
Events docs: typed dispatch API and discovery workflow
apps/docs/docs/events/index.md, apps/docs/docs/events/defining-events.md, apps/docs/docs/events/dispatching-events.md, apps/docs/docs/events/api-reference.md, apps/docs/docs/events/transactions-after-commit.md, apps/docs/docs/events/setup-and-cli.md, apps/docs/docs/events/queued-listeners.md
Updates events documentation to present UserRegistered.dispatch(...) as primary dispatch API; removes Event facade from quick-start imports; adds async queue worker production requirement notes and corrects discovery refresh timing to holo dev/holo build.
Queue job definition dispatch contract and infrastructure
packages/queue/src/contracts.ts, packages/queue/src/index.ts
Adds async/sync dispatcher globals with globalThis storage, WeakMap associating job definitions with registered names (resolver throws if missing), internal dispatch functions with guards, exported DefinedQueueJobDefinition interface with dispatch/dispatchSync methods, refactors defineJob to return frozen augmented type with non-enumerable methods, and re-exports new type.
Queue registry and runtime wiring
packages/queue/src/registry.ts, packages/queue/src/runtime.ts
registerQueueJob calls queueJobInternals.setQueueJobDefinitionName for both raw and normalized definitions; unregisterQueueJob and resetQueueRegistry clean up internal name mappings; runtime startup registers dispatch and dispatchSync into queueJobInternals.
Queue job definition tests
packages/queue/tests/job.test.ts, packages/queue/tests/config.type.test.ts, packages/queue/tests/runtime.test.ts
Verifies dispatch/dispatchSync existence and correct enumerable keys on normalized jobs; tests pre-registration and pre-runtime-load error paths with try/finally cleanup; type tests for valid/invalid payloads with // @ts-expect-error`` blocks; integration test dispatches defineJob job through both typed methods and asserts sync-driver execution metadata.
Queue docs: typed dispatch API and worker guidance
apps/docs/docs/queue/jobs.md, apps/docs/docs/queue/index.md, apps/docs/docs/queue/workers.md
Defines named SendDigest constant via defineJob<...> as primary pattern; shows SendDigest.dispatch(...)/SendDigest.dispatchSync(...) as primary dispatch APIs with string-based dispatch as secondary; updates afterCommit example to typed form; corrects discovery notes; adds async worker production requirement and deployment cross-references.

Documentation landing page, deployment model, and discovery workflow

Layer / File(s) Summary
New docs landing page component and index
apps/docs/docs/.vitepress/theme/components/Landing.vue, apps/docs/docs/index.md
Creates Landing.vue as full Vue SFC with script setup defining scroll handler and data-driven content arrays, hero/CTA/features/partners/modules sections, and 628 lines of scoped CSS with keyframe animations, reduced-motion override, hover effects, and responsive breakpoints; updates index.md to use layout: page with pageClass: holo-landing and render <Landing />.
Deployment model rewrite and worker operational guidance
apps/docs/docs/deployment.md
Introduces web-runtime-plus-worker-runtime conceptual model with host selection guidance and comparison table; replaces prepare-artifacts guidance with explicit holo config:cache (optional) and npm run build build flow; extends start-production section with holo start in process managers and supervised holo queue:work/holo broadcast:work worker process guidance; updates migration checklist.
Discovery workflow corrections across docs
apps/docs/docs/directory-structure.md, apps/docs/docs/database/commands.md
Corrects auto-discovery timing from holo prepare to holo dev/holo build in commands, jobs, events, listeners, and project-discovery sections; repositions holo prepare as refresh-only standalone option with explicit follow-up instruction when needed.
Deployment and worker cross-references across remaining docs
apps/docs/docs/architecture.md, apps/docs/docs/auth/personal-access-tokens.md, apps/docs/docs/broadcast/deployment-and-scaling.md, apps/docs/docs/mail/queueing-mail.md, apps/docs/docs/media.md, apps/docs/docs/notifications/queueing-notifications.md, apps/docs/docs/realtime/index.md, apps/docs/docs/runtime-services.md
Adds deployment host selection and async worker production requirement notes with cross-references to deployment docs across eight documentation pages.

Blog post indexing via events and queue jobs across three frameworks

Layer / File(s) Summary
Blog-next: post events, indexing job, and lifecycle wiring
apps/blog-next/package.json, apps/blog-next/server/events/blog/post-saved.ts, apps/blog-next/server/jobs/blog/index-post.ts, apps/blog-next/server/lib/blog.ts, apps/blog-next/server/listeners/blog/index-saved-post.ts, apps/blog-next/tests/blog-logic.mjs, apps/blog-next/server/db/migrations/2026_*
Adds @holo-js/events dependency; defines BlogPostSaved event with typed payload and IndexBlogPost queue job; updates createPost/updatePost/deletePost to dispatch on lifecycle events; adds listener dispatching indexing job; updates test to track queued jobs; adds queue/failed-jobs table migrations; removes MigrationContext type annotations from existing migrations.
Blog-nuxt: post events, indexing job, and lifecycle wiring
apps/blog-nuxt/package.json, apps/blog-nuxt/server/events/blog/post-saved.ts, apps/blog-nuxt/server/jobs/blog/index-post.ts, apps/blog-nuxt/server/lib/blog.ts, apps/blog-nuxt/server/listeners/blog/index-saved-post.ts, apps/blog-nuxt/tests/blog-logic.mjs, apps/blog-nuxt/server/db/migrations/2026_*
Adds @holo-js/events dependency; defines BlogPostSaved event and IndexBlogPost job with typed payloads; updates createPost/updatePost/deletePost to dispatch on lifecycle events; adds event listener dispatching indexing job; updates test to track queued jobs; adds queue/failed-jobs table migrations; removes MigrationContext type annotations from existing migrations.
Blog-sveltekit: post events, indexing job, lifecycle wiring, and delete handler
apps/blog-sveltekit/package.json, apps/blog-sveltekit/server/events/blog/post-saved.ts, apps/blog-sveltekit/server/jobs/blog/index-post.ts, apps/blog-sveltekit/server/listeners/blog/index-saved-post.ts, apps/blog-sveltekit/src/routes/admin/posts/*/+page.server.ts, apps/blog-sveltekit/tests/blog-logic.mjs, apps/blog-sveltekit/server/db/migrations/2026_*
Adds @holo-js/events dependency; defines BlogPostSaved event and IndexBlogPost job with typed payloads; updates create/update/delete route handlers to dispatch events and queue indexing jobs; adds event listener dispatching indexing job; updates test to track queued jobs; adds queue/failed-jobs table migrations; removes MigrationContext type annotations from existing migrations.

CLI and core package updates for job definition dispatch

Layer / File(s) Summary
CLI migration template generation updates
packages/cli/src/cache-migrations.ts, packages/cli/src/media-migrations.ts, packages/cli/src/project/scaffold/project-renderers.ts, packages/cli/src/queue-migrations.ts
Updates all migration template generators to remove MigrationContext type imports and type annotations from async up({ schema })/async down({ schema }) parameters; adds string-escaping helper for queue migration templates; emits escaped single-quoted table/index names instead of JSON.stringify literals; updates auth/notifications template generation.
CLI queue job registration and core auto-registration defaults
packages/cli/src/queue.ts, packages/core/src/portable/holo.ts, packages/core/tests/adapter.test.ts, packages/core/tests/runtime.test.ts
Changes registerQueueJob to pass discovered job directly without normalization; updates auto-registration condition from === true (opt-in) to !== false (enabled by default); updates adapter/runtime tests to explicitly disable registration with registerProjectQueueJobs: false when testing that scenario.

Sequence Diagram(s)

sequenceDiagram
    participant App as Application Code
    participant EventDef as UserRegistered (DefinedEventDefinition)
    participant dispatchFn as dispatchDefinedEvent
    participant Global as globalThis.__holoEventDefinitionDispatcher__
    participant Runtime as events runtime dispatchEvent
    participant PD as EventPendingDispatch

    App->>EventDef: UserRegistered.dispatch({ userId, email })
    EventDef->>dispatchFn: dispatchDefinedEvent(eventDef, payload)
    dispatchFn->>Global: getEventDefinitionDispatcher()
    Global-->>dispatchFn: dispatchEvent fn
    dispatchFn->>Runtime: dispatchEvent(eventDef, payload)
    Runtime-->>PD: new EventPendingDispatch(...)
    PD-->>App: .afterCommit() chain available
Loading
sequenceDiagram
    participant App as Application Code
    participant JobDef as SendDigest (DefinedQueueJobDefinition)
    participant dispatchFn as dispatchDefinedQueueJob
    participant WM as jobDefinitionNames WeakMap
    participant Global as globalThis queue dispatcher
    participant Runtime as queue runtime dispatch
    participant PD as QueuePendingDispatch

    Note over WM: populated at registerQueueJob() time
    App->>JobDef: SendDigest.dispatch({ reportId })
    JobDef->>dispatchFn: dispatchDefinedQueueJob(jobDef, payload)
    dispatchFn->>WM: resolveQueueJobDefinitionName(jobDef)
    WM-->>dispatchFn: "reports.send-digest"
    dispatchFn->>Global: getQueueJobDispatcher()
    Global-->>dispatchFn: dispatch fn
    dispatchFn->>Runtime: dispatch("reports.send-digest", payload)
    Runtime-->>PD: new QueuePendingDispatch(...)
    PD-->>App: chainable dispatch handle
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

  • cobraprojects/holo-js#27: The main PR's docs and example code updates that switch auth client/guard imports from @holo-js/adapter-* to @holo-js/auth/* directly align with the retrieved PR's move of auth helpers into the @holo-js/auth package and the resulting import/usage changes.
  • cobraprojects/holo-js#43: Both PRs modify the same queue-job registration runtime logic in packages/core/src/portable/holo.ts (passing discovered jobs directly to registerQueueJob instead of normalizeQueueJobDefinition, and flipping the default registerProjectQueueJobs behavior), so the changes are code-level related.
  • cobraprojects/holo-js#48: Both PRs modify blog post lifecycle functions in apps/blog-*/server/lib/blog.ts (notably createPost/updatePost), with this PR dispatching BlogPostSaved events and queuing indexing jobs after post operations, while PR#48 adds media handling/validation and DB transaction wrapping—making them directly related at the blog post lifecycle logic level.

Poem

🐰 Hop, hop, hooray, the dispatch is here!
No strings attached—just types, crisp and clear.
UserRegistered.dispatch(...) — the primary way,
SendDigest.dispatchSync(...) brightens the day.
The landing page blooms, the docs find their place,
A rabbit's proud work, with style and with grace. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the primary change: updating event and job dispatch syntax throughout the codebase to use direct event/job definition methods rather than string-based dispatch.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch update-events-and-jobs

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install failed. For unrecoverable errors, disable the tool in CodeRabbit configuration.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/docs/docs/.vitepress/theme/components/Landing.vue`:
- Line 106: The span element in the Landing.vue component containing "+ 7 more
modules" incorrectly displays the count of remaining unpicked modules. Since the
palette shows 8 total modules with 3 marked as picked, only 5 modules remain
unpicked, not 7. Either update the text to display "+ 5 more modules" to
accurately reflect the unpicked module count, or alternatively reframe the link
text to direct users to explore all available modules below (such as "Explore
all modules" or "View complete modules list") and ensure it links to the
appropriate Modules section anchor if using the second approach.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e8580bfb-75af-4dba-bf1b-d7b414880214

📥 Commits

Reviewing files that changed from the base of the PR and between 200a775 and 78c9457.

📒 Files selected for processing (36)
  • apps/docs/docs/.vitepress/theme/components/Landing.vue
  • apps/docs/docs/architecture.md
  • apps/docs/docs/auth/personal-access-tokens.md
  • apps/docs/docs/broadcast/deployment-and-scaling.md
  • apps/docs/docs/database/commands.md
  • apps/docs/docs/deployment.md
  • apps/docs/docs/directory-structure.md
  • apps/docs/docs/events/api-reference.md
  • apps/docs/docs/events/defining-events.md
  • apps/docs/docs/events/dispatching-events.md
  • apps/docs/docs/events/index.md
  • apps/docs/docs/events/queued-listeners.md
  • apps/docs/docs/events/setup-and-cli.md
  • apps/docs/docs/events/transactions-after-commit.md
  • apps/docs/docs/index.md
  • apps/docs/docs/mail/queueing-mail.md
  • apps/docs/docs/media.md
  • apps/docs/docs/notifications/queueing-notifications.md
  • apps/docs/docs/queue/index.md
  • apps/docs/docs/queue/jobs.md
  • apps/docs/docs/queue/workers.md
  • apps/docs/docs/realtime/index.md
  • apps/docs/docs/runtime-services.md
  • packages/events/src/contracts.ts
  • packages/events/src/index.ts
  • packages/events/src/runtime.ts
  • packages/events/tests/contracts.test.ts
  • packages/events/tests/contracts.type.test.ts
  • packages/events/tests/runtime.test.ts
  • packages/queue/src/contracts.ts
  • packages/queue/src/index.ts
  • packages/queue/src/registry.ts
  • packages/queue/src/runtime.ts
  • packages/queue/tests/config.type.test.ts
  • packages/queue/tests/job.test.ts
  • packages/queue/tests/runtime.test.ts

Comment thread apps/docs/docs/.vitepress/theme/components/Landing.vue Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/blog-next/server/lib/blog.ts`:
- Around line 265-268: The IndexBlogPost.dispatch() calls at lines 265, 312, and
332 are creating duplicate indexing jobs because the save event listener in
apps/blog-next/server/listeners/blog/index-saved-post.ts already enqueues the
indexing job automatically. Remove all three IndexBlogPost.dispatch() calls (the
ones with action 'created', action 'updated', and action 'deleted' respectively)
to eliminate the double-queueing behavior and rely solely on the listener to
handle the indexing job dispatch.

In `@apps/blog-next/server/listeners/blog/index-saved-post.ts`:
- Around line 8-12: In the handle method of the blog post listener, replace the
`dispatchSync` call on `IndexBlogPost` with the asynchronous `dispatch` method
to ensure background processing instead of inline execution. This will prevent
blocking the event handler and decouple failure scenarios. Simply change
`IndexBlogPost.dispatchSync` to `IndexBlogPost.dispatch` while keeping the same
payload parameters.

In `@apps/blog-nuxt/server/lib/blog.ts`:
- Around line 236-247: Remove the direct IndexBlogPost.dispatch() calls that
follow the BlogPostSaved.dispatch() calls, as the BlogPostSaved event listener
in apps/blog-nuxt/server/listeners/blog/index-saved-post.ts already triggers
IndexBlogPost dispatching. Keep only the BlogPostSaved.dispatch() calls to
maintain a single indexing path through the event listener, and apply this same
fix to all occurrences where both BlogPostSaved and IndexBlogPost are dispatched
together in the same lifecycle handler blocks.

In `@apps/blog-nuxt/server/listeners/blog/index-saved-post.ts`:
- Around line 8-12: The handle method in the event listener is using
IndexBlogPost.dispatchSync which blocks the handler while processing. Change the
dispatchSync call to an asynchronous dispatch method (typically dispatch instead
of dispatchSync) to queue the indexing job in the background without blocking
the handler. This ensures the listener returns immediately after queuing the job
rather than waiting for the indexing to complete.

In `@apps/blog-sveltekit/server/listeners/blog/index-saved-post.ts`:
- Around line 8-12: The handle method uses dispatchSync for IndexBlogPost which
blocks the main request/event flow. Replace dispatchSync with the asynchronous
dispatch method and ensure proper await handling to move the indexing operation
into a background queue instead of the critical path. This allows the event to
complete without waiting for the indexing to finish.

In `@apps/blog-sveltekit/src/routes/admin/posts/`[id]/edit/+page.server.ts:
- Around line 68-78: The update flow is dispatching both
BlogPostSaved.dispatch() and IndexBlogPost.dispatch() which causes indexing to
be triggered twice - once by the BlogPostSaved listener and once by the direct
IndexBlogPost.dispatch() call. Remove the IndexBlogPost.dispatch() call that is
invoked after BlogPostSaved.dispatch() on the queue, keeping only the
BlogPostSaved.dispatch() which already handles triggering the indexing through
its listener.

In `@apps/blog-sveltekit/src/routes/admin/posts/`+page.server.ts:
- Around line 30-40: The code is dispatching BlogPostSaved event which has a
listener that already dispatches IndexBlogPost for indexing, and then directly
dispatching IndexBlogPost again, causing duplicate indexing work for the same
delete action. Remove the direct IndexBlogPost.dispatch() call that appears
after the BlogPostSaved.dispatch() invocation, and rely solely on the
event-driven approach where the BlogPostSaved listener handles the IndexBlogPost
dispatch.

In `@apps/blog-sveltekit/src/routes/admin/posts/new/`+page.server.ts:
- Around line 63-73: The code is dispatching two separate events for the same
create operation: BlogPostSaved and IndexBlogPost, which causes duplicate
indexing work. Since BlogPostSaved is already configured to trigger indexing,
remove the direct IndexBlogPost.dispatch() call on line 70 and rely solely on
the BlogPostSaved event dispatch to handle the indexing through its wired event
handler.

In `@packages/cli/src/queue-migrations.ts`:
- Around line 33-35: The escapeSingleQuotedString function only escapes
backslashes and single quotes but fails to handle control characters like
newline and carriage return that can appear in table names. These unescaped
control characters will break the generated TypeScript code in the migration
file. Replace the current manual replaceAll approach in escapeSingleQuotedString
with JSON.stringify() which automatically handles all control character escaping
correctly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 663163f9-7f5a-44b4-99e7-a89fdff8e2b9

📥 Commits

Reviewing files that changed from the base of the PR and between 78c9457 and 44427a2.

⛔ Files ignored due to path filters (2)
  • apps/docs/docs/public/mark.svg is excluded by !**/*.svg
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (70)
  • apps/blog-next/package.json
  • apps/blog-next/server/db/migrations/2026_04_25_044031_create_admins.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044032_create_notifications.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044032_create_users.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044033_create_sessions.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044034_create_auth_identities.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044035_create_personal_access_tokens.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044036_create_password_reset_tokens.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044037_create_email_verification_tokens.ts
  • apps/blog-next/server/db/migrations/2026_05_02_115334_create_comments_table.ts
  • apps/blog-next/server/db/migrations/2026_05_25_063242_create_cache_cache_table.ts
  • apps/blog-next/server/db/migrations/2026_06_19_202222_create_failed_jobs_table.ts
  • apps/blog-next/server/db/migrations/2026_06_19_202222_create_jobs_table.ts
  • apps/blog-next/server/events/blog/post-saved.ts
  • apps/blog-next/server/jobs/blog/index-post.ts
  • apps/blog-next/server/lib/blog.ts
  • apps/blog-next/server/listeners/blog/index-saved-post.ts
  • apps/blog-next/tests/blog-logic.mjs
  • apps/blog-nuxt/package.json
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044031_create_admins.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044032_create_notifications.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044032_create_users.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044033_create_sessions.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044034_create_auth_identities.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044035_create_personal_access_tokens.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044036_create_password_reset_tokens.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044037_create_email_verification_tokens.ts
  • apps/blog-nuxt/server/db/migrations/2026_05_02_115438_create_comments_table.ts
  • apps/blog-nuxt/server/db/migrations/2026_05_25_063246_create_cache_cache_table.ts
  • apps/blog-nuxt/server/db/migrations/2026_06_19_202226_create_jobs_table.ts
  • apps/blog-nuxt/server/db/migrations/2026_06_19_202227_create_failed_jobs_table.ts
  • apps/blog-nuxt/server/events/blog/post-saved.ts
  • apps/blog-nuxt/server/jobs/blog/index-post.ts
  • apps/blog-nuxt/server/lib/blog.ts
  • apps/blog-nuxt/server/listeners/blog/index-saved-post.ts
  • apps/blog-nuxt/tests/blog-logic.mjs
  • apps/blog-sveltekit/package.json
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044031_create_admins.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044032_create_notifications.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044032_create_users.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044033_create_sessions.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044034_create_auth_identities.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044035_create_personal_access_tokens.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044036_create_password_reset_tokens.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044037_create_email_verification_tokens.ts
  • apps/blog-sveltekit/server/db/migrations/2026_05_02_115430_create_comments_table.ts
  • apps/blog-sveltekit/server/db/migrations/2026_05_25_063252_create_cache_cache_table.ts
  • apps/blog-sveltekit/server/db/migrations/2026_06_19_202238_create_jobs_table.ts
  • apps/blog-sveltekit/server/db/migrations/2026_06_19_202239_create_failed_jobs_table.ts
  • apps/blog-sveltekit/server/events/blog/post-saved.ts
  • apps/blog-sveltekit/server/jobs/blog/index-post.ts
  • apps/blog-sveltekit/server/listeners/blog/index-saved-post.ts
  • apps/blog-sveltekit/src/routes/admin/posts/+page.server.ts
  • apps/blog-sveltekit/src/routes/admin/posts/[id]/edit/+page.server.ts
  • apps/blog-sveltekit/src/routes/admin/posts/new/+page.server.ts
  • apps/blog-sveltekit/tests/blog-logic.mjs
  • apps/docs/docs/.vitepress/theme/components/Landing.vue
  • apps/docs/docs/queue/jobs.md
  • packages/cli/src/cache-migrations.ts
  • packages/cli/src/media-migrations.ts
  • packages/cli/src/project/scaffold/project-renderers.ts
  • packages/cli/src/queue-migrations.ts
  • packages/cli/src/queue.ts
  • packages/cli/tests/queue-migrations.test.ts
  • packages/core/src/portable/holo.ts
  • packages/core/tests/adapter.test.ts
  • packages/core/tests/runtime.test.ts
  • packages/queue/src/contracts.ts
  • packages/queue/src/registry.ts
  • packages/queue/tests/config.type.test.ts
✅ Files skipped from review due to trivial changes (31)
  • apps/blog-nuxt/server/db/migrations/2026_06_19_202226_create_jobs_table.ts
  • apps/blog-next/server/db/migrations/2026_06_19_202222_create_jobs_table.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044031_create_admins.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044031_create_admins.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044036_create_password_reset_tokens.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044034_create_auth_identities.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044034_create_auth_identities.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044034_create_auth_identities.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044036_create_password_reset_tokens.ts
  • apps/blog-next/server/db/migrations/2026_05_02_115334_create_comments_table.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044036_create_password_reset_tokens.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044033_create_sessions.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044032_create_notifications.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044032_create_notifications.ts
  • apps/blog-next/server/db/migrations/2026_05_25_063242_create_cache_cache_table.ts
  • apps/blog-sveltekit/server/db/migrations/2026_05_02_115430_create_comments_table.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044033_create_sessions.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044037_create_email_verification_tokens.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044031_create_admins.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044035_create_personal_access_tokens.ts
  • apps/blog-nuxt/server/db/migrations/2026_05_25_063246_create_cache_cache_table.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044032_create_users.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044037_create_email_verification_tokens.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044037_create_email_verification_tokens.ts
  • apps/blog-next/server/db/migrations/2026_04_25_044032_create_users.ts
  • apps/blog-nuxt/server/db/migrations/2026_05_02_115438_create_comments_table.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044035_create_personal_access_tokens.ts
  • apps/blog-sveltekit/server/db/migrations/2026_04_25_044033_create_sessions.ts
  • apps/blog-sveltekit/server/db/migrations/2026_05_25_063252_create_cache_cache_table.ts
  • apps/blog-nuxt/server/db/migrations/2026_04_25_044032_create_users.ts
  • packages/cli/src/project/scaffold/project-renderers.ts
🚧 Files skipped from review as they are similar to previous changes (4)
  • packages/queue/src/registry.ts
  • apps/docs/docs/.vitepress/theme/components/Landing.vue
  • packages/queue/src/contracts.ts
  • apps/docs/docs/queue/jobs.md

Comment thread apps/blog-next/server/lib/blog.ts Outdated
Comment thread apps/blog-next/server/listeners/blog/index-saved-post.ts
Comment thread apps/blog-nuxt/server/lib/blog.ts
Comment thread apps/blog-nuxt/server/listeners/blog/index-saved-post.ts
Comment thread apps/blog-sveltekit/server/listeners/blog/index-saved-post.ts
Comment thread apps/blog-sveltekit/src/routes/admin/posts/[id]/edit/+page.server.ts Outdated
Comment thread apps/blog-sveltekit/src/routes/admin/posts/+page.server.ts Outdated
Comment thread apps/blog-sveltekit/src/routes/admin/posts/new/+page.server.ts Outdated
Comment thread packages/cli/src/queue-migrations.ts Outdated
@netlify

netlify Bot commented Jun 19, 2026

Copy link
Copy Markdown

Deploy Preview for holo-docs canceled.

Name Link
🔨 Latest commit c6b0ee9
🔍 Latest deploy log https://app.netlify.com/projects/holo-docs/deploys/6a35bacbac8ea700083e6d7e

@cobraprojects

Copy link
Copy Markdown
Owner Author

@CodeRabbit review

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@cobraprojects cobraprojects merged commit 670e1fa into main Jun 19, 2026
5 checks passed
@cobraprojects cobraprojects deleted the update-events-and-jobs branch June 21, 2026 10:31
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.

1 participant