@agent-native/core 0.169.1 → 0.171.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-native.eject.json +4 -1
- package/bin/agent-native.js +23 -5
- package/corpus/README.md +1 -1
- package/corpus/templates/analytics/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +1 -1
- package/corpus/templates/analytics/app/i18n-data.ts +28 -0
- package/corpus/templates/analytics/app/pages/Agents.tsx +25 -1
- package/corpus/templates/analytics/app/routes/$.tsx +10 -0
- package/corpus/templates/analytics/app/routes.ts +3 -1
- package/corpus/templates/analytics/changelog/2026-08-22-fixed-the-agent-native-templates-first-party-dashboard-panel.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-22-org-admin-panels-no-longer-report-a-database-error-as-a-per.md +9 -0
- package/corpus/templates/analytics/changelog/2026-08-22-slack-requests-report-invalid-inputs.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-22-unknown-analytics-links-now-return-a-real-not-found-status.md +6 -0
- package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +2 -1
- package/corpus/templates/analytics/docs/schemas/tracked-events.md +2 -0
- package/corpus/templates/analytics/scripts/emit-netlify-dashboard-report-cron.ts +29 -7
- package/corpus/templates/analytics/server/handlers/slack.ts +59 -5
- package/corpus/templates/analytics/server/lib/db-admin-connections.ts +11 -6
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +132 -2
- package/corpus/templates/analytics/server/lib/slack.ts +4 -2
- package/corpus/templates/analytics/vitest.config.ts +6 -1
- package/corpus/templates/assets/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/assets/app/routes/library.tsx +5 -3
- package/corpus/templates/assets/app/routes.ts +3 -1
- package/corpus/templates/assets/changelog/2026-08-22-library-page-loads-again-instead-of-crashing-on-open.md +6 -0
- package/corpus/templates/assets/vitest.config.ts +6 -1
- package/corpus/templates/brain/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/brain/app/components/ui/pointer-lock.ts +1 -0
- package/corpus/templates/brain/app/routes/sources.tsx +8 -3
- package/corpus/templates/brain/changelog/2026-08-22-tuning-or-adding-a-source-no-longer-leaves-the-sources-page.md +6 -0
- package/corpus/templates/brain/vitest.config.ts +1 -0
- package/corpus/templates/calendar/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/calendar/actions/list-booking-links.ts +83 -4
- package/corpus/templates/calendar/actions/update-booking-link.ts +4 -3
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +11 -3
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +1 -1
- package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +103 -44
- package/corpus/templates/calendar/app/components/calendar/OutOfOfficeEvent.tsx +28 -24
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +9 -2
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +47 -58
- package/corpus/templates/calendar/app/hooks/use-booking-links.ts +5 -1
- package/corpus/templates/calendar/app/lib/event-layout.ts +52 -26
- package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +126 -98
- package/corpus/templates/calendar/app/pages/CalendarView.tsx +1 -0
- package/corpus/templates/calendar/app/pages/Settings.tsx +88 -81
- package/corpus/templates/calendar/app/routes.ts +3 -1
- package/corpus/templates/calendar/changelog/2026-08-22-booking-link-visibility-respects-shared-access.md +6 -0
- package/corpus/templates/calendar/changelog/2026-08-22-clicking-an-out-of-office-event-s-marker-no-longer-creates-a.md +6 -0
- package/corpus/templates/calendar/changelog/2026-08-22-event-detail-views-now-show-your-calendar-timezone.md +6 -0
- package/corpus/templates/calendar/changelog/2026-08-22-google-calendar-can-now-connect-with-the-shared-google-oauth.md +6 -0
- package/corpus/templates/calendar/changelog/2026-08-22-overlapping-events-now-show-each-others-boundaries.md +6 -0
- package/corpus/templates/calendar/changelog/2026-08-22-public-booking-pages-now-offer-time-slots-from-the-host-s-we.md +6 -0
- package/corpus/templates/calendar/server/handlers/bookings.ts +5 -7
- package/corpus/templates/calendar/server/handlers/google-auth.ts +10 -2
- package/corpus/templates/calendar/server/lib/google-calendar.ts +139 -14
- package/corpus/templates/calendar/server/onboarding.ts +85 -0
- package/corpus/templates/calendar/server/plugins/agent-chat.ts +2 -0
- package/corpus/templates/calendar/shared/api.ts +9 -1
- package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/chat/app/routes.ts +3 -1
- package/corpus/templates/chat/vitest.config.ts +8 -0
- package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/clips/actions/get-meeting.ts +9 -4
- package/corpus/templates/clips/actions/list-recordings.ts +16 -3
- package/corpus/templates/clips/actions/search-meetings.ts +1 -0
- package/corpus/templates/clips/actions/view-screen.ts +8 -1
- package/corpus/templates/clips/app/components/meetings/meeting-history-row.tsx +32 -1
- package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +29 -1
- package/corpus/templates/clips/app/i18n/en-US.ts +5 -0
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +33 -4
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +1 -0
- package/corpus/templates/clips/app/routes/access-request.approve.tsx +16 -9
- package/corpus/templates/clips/app/routes/embed.$shareId.tsx +17 -7
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +17 -7
- package/corpus/templates/clips/changelog/2026-08-21-camera-bubble-black-circle.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-22-screen-recordings-respect-the-microphone-toggle.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-22-the-recordings-library-no-longer-fails-right-after-server-start.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-23-the-agent-can-see-your-library-right-after-server-start.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/background.ts +1 -2
- package/corpus/templates/clips/chrome-extension/src/native-transcription.ts +39 -7
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +21 -25
- package/corpus/templates/clips/desktop/src/app.tsx +53 -24
- package/corpus/templates/clips/desktop/src/lib/bubble-playback.ts +68 -0
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +3 -0
- package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +72 -14
- package/corpus/templates/clips/desktop/src/lib/updater.ts +8 -3
- package/corpus/templates/clips/desktop/src/overlays/bubble.tsx +162 -20
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +43 -6
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen/custom_capture.rs +150 -13
- package/corpus/templates/clips/desktop/src-tauri/src/tray.rs +12 -0
- package/corpus/templates/clips/server/lib/calendar-event-meetings.ts +28 -3
- package/corpus/templates/clips/server/lib/emails.ts +17 -33
- package/corpus/templates/content/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +140 -15
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +12 -14
- package/corpus/templates/content/app/components/ui/pointer-lock.ts +1 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +18 -2
- package/corpus/templates/content/app/hooks/use-local-storage.ts +38 -22
- package/corpus/templates/content/app/i18n-data.ts +25 -0
- package/corpus/templates/content/app/routes.ts +3 -1
- package/corpus/templates/content/changelog/2026-08-22-code-blocks-inserted-from-the-slash-menu-no-longer-get-stuck.md +6 -0
- package/corpus/templates/content/changelog/2026-08-22-the-sidebar-page-tree-no-longer-flashes-empty-after-creating-a-page.md +6 -0
- package/corpus/templates/content/docs/solutions/2026-08-21-content-mermaid-rendering-shape.md +233 -0
- package/corpus/templates/content/server/plugins/agent-chat.ts +9 -2
- package/corpus/templates/content/vitest.config.ts +7 -1
- package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/design/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +1383 -88
- package/corpus/templates/design/actions/generate-design.ts +98 -47
- package/corpus/templates/design/actions/get-design-system.ts +6 -1
- package/corpus/templates/design/actions/refresh-design-system-with-builder.ts +146 -0
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +70 -26
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +284 -136
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +2057 -141
- package/corpus/templates/design/app/components/design/editor/DesignBottomToolbar.tsx +6 -2
- package/corpus/templates/design/app/components/design/editor/DesignWorkspaceRail.tsx +4 -4
- package/corpus/templates/design/app/components/design/keyboard-shortcuts.ts +10 -1
- package/corpus/templates/design/app/components/design/multi-screen/alt-hover-measurement.ts +19 -2
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +9 -2
- package/corpus/templates/design/app/components/layout/Header.tsx +15 -0
- package/corpus/templates/design/app/components/layout/Layout.tsx +7 -2
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +11 -4
- package/corpus/templates/design/app/i18n-data.ts +1 -0
- package/corpus/templates/design/app/i18n-keyboard-shortcuts.ts +12 -0
- package/corpus/templates/design/app/lib/design-system-data.ts +68 -0
- package/corpus/templates/design/app/pages/DesignEditor.tsx +77 -35
- package/corpus/templates/design/app/pages/DesignSystems.tsx +136 -42
- package/corpus/templates/design/app/pages/Index.tsx +2 -0
- package/corpus/templates/design/app/pages/Templates.tsx +0 -10
- package/corpus/templates/design/app/pages/design-editor/code-layer-state.ts +10 -0
- package/corpus/templates/design/app/pages/design-editor/collab-sync.ts +50 -0
- package/corpus/templates/design/app/pages/design-editor/commands/apply-design-editor-command.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/apply-file-content-update.ts +10 -8
- package/corpus/templates/design/app/pages/design-editor/commands/apply-local-content-update.ts +6 -6
- package/corpus/templates/design/app/pages/design-editor/commands/apply-pending-visual-styles-with-agent.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/commit-visual-styles.ts +18 -7
- package/corpus/templates/design/app/pages/design-editor/commands/escape-hotkey.ts +4 -90
- package/corpus/templates/design/app/pages/design-editor/commands/layer-marquee-selection-change.ts +2 -1
- package/corpus/templates/design/app/pages/design-editor/commands/layer-selection-change.ts +4 -3
- package/corpus/templates/design/app/pages/design-editor/commands/screen-element-select.ts +12 -2
- package/corpus/templates/design/app/pages/design-editor/commands/screen-visual-style-change.ts +9 -2
- package/corpus/templates/design/app/pages/design-editor/commands/send-runtime-layer-move-semantic-handoff.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/send-runtime-layer-semantic-handoff.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/send-runtime-layer-state-semantic-handoff.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/start-sidebar-resize.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/editor-state.ts +11 -1
- package/corpus/templates/design/app/pages/design-editor/effects/adopt-db-file-content.ts +11 -19
- package/corpus/templates/design/app/pages/design-editor/effects/observe-collab-text.ts +6 -6
- package/corpus/templates/design/app/pages/design-editor/effects/publish-agent-selection-context.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/effects/seed-collab-content.ts +12 -15
- package/corpus/templates/design/app/pages/design-editor/selection-state.ts +5 -59
- package/corpus/templates/design/app/pages/design-editor/tool-state.ts +8 -0
- package/corpus/templates/design/app/pages/design-editor/types.ts +3 -3
- package/corpus/templates/design/app/routes.ts +3 -1
- package/corpus/templates/design/changelog/2026-08-20-canvas-edits-patch-the-frame-instead-of-rebuilding-it.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-builder-design-system-imports-reconcile-after-indexing.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-draw-mode-needs-shift-y.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-eyedropper-shortcut.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-figma-style-alignment-guides-and-snapping.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-group-transforms-keep-the-selection.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-inspector-fields-keep-focus-on-enter.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-pen-alt-keeps-the-incoming-handle.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-pen-on-the-board-creates-one-vector.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-scale-a-multi-selection-from-the-group-handles.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-scale-resizes-text-with-the-object.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-selecting-another-object-keeps-the-scale-tool-armed.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-the-shape-tool-remembers-the-shape-you-picked.md +6 -0
- package/corpus/templates/design/changelog/2026-08-21-vectors-drawn-in-a-frame-land-where-you-drew-them.md +6 -0
- package/corpus/templates/design/changelog/2026-08-22-multi-screen-generation-no-longer-loses-a-saved-screens-layo.md +6 -0
- package/corpus/templates/design/changelog/2026-08-22-rename-and-search-fields-are-labeled-for-screen-readers.md +6 -0
- package/corpus/templates/design/package.json +2 -0
- package/corpus/templates/design/server/lib/builder-design-system-proxy.ts +311 -0
- package/corpus/templates/design/shared/canvas-math.ts +612 -206
- package/corpus/templates/design/shared/pen-path.ts +37 -0
- package/corpus/templates/design/vitest.config.ts +7 -1
- package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/dispatch/actions/list-workspace-connections.ts +34 -3
- package/corpus/templates/dispatch/app/routes/integrations.tsx +55 -21
- package/corpus/templates/dispatch/app/routes.ts +3 -1
- package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/factory/.env.example +2 -7
- package/corpus/templates/factory/AGENTS.md +3 -0
- package/corpus/templates/factory/README.md +5 -3
- package/corpus/templates/factory/actions/create-factory.ts +16 -3
- package/corpus/templates/factory/actions/get-slack-feedback-context.ts +2 -0
- package/corpus/templates/factory/actions/get-triage-item.ts +2 -0
- package/corpus/templates/factory/actions/list-factory-audit.ts +116 -36
- package/corpus/templates/factory/actions/list-factory-automations.ts +2 -1
- package/corpus/templates/factory/actions/list-triage-items.ts +22 -19
- package/corpus/templates/factory/actions/run-factory-automation.ts +7 -3
- package/corpus/templates/factory/actions/save-factory-automation.ts +5 -2
- package/corpus/templates/factory/actions/save-triage-config.ts +2 -8
- package/corpus/templates/factory/actions/start-builder-for-item.ts +21 -0
- package/corpus/templates/factory/app/components/factory/FactoryAuditView.tsx +229 -297
- package/corpus/templates/factory/app/components/factory/FactorySettingsView.tsx +397 -247
- package/corpus/templates/factory/app/components/factory/FactorySourceSettingsGroup.tsx +33 -0
- package/corpus/templates/factory/app/components/factory/NewFactoryForm.tsx +202 -162
- package/corpus/templates/factory/app/i18n/en-US.ts +32 -4
- package/corpus/templates/factory/app/routes/factory.tsx +84 -11
- package/corpus/templates/factory/app/routes.ts +3 -1
- package/corpus/templates/factory/changelog/2026-08-21-activity-runs-use-automation-display-names.md +6 -0
- package/corpus/templates/factory/changelog/2026-08-21-create-and-settings-source-cards.md +6 -0
- package/corpus/templates/factory/changelog/2026-08-21-keep-automations-visible-while-running.md +6 -0
- package/corpus/templates/factory/changelog/2026-08-21-nested-factory-automations-can-poll.md +6 -0
- package/corpus/templates/factory/changelog/2026-08-21-settings-sticky-unsaved-bar.md +6 -0
- package/corpus/templates/factory/server/connectors/credentials.ts +10 -5
- package/corpus/templates/factory/server/lib/factory-audit-report.ts +412 -0
- package/corpus/templates/factory/server/lib/factory-config-reconcile.ts +321 -0
- package/corpus/templates/factory/server/lib/factory-scope.ts +25 -2
- package/corpus/templates/factory/server/lib/require-factory-automation.ts +13 -4
- package/corpus/templates/factory/server/plugins/factory-migrations.ts +148 -4
- package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +4 -6
- package/corpus/templates/factory/vitest.config.ts +17 -2
- package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/forms/app/routes/_app.settings.tsx +4 -1
- package/corpus/templates/forms/changelog/2026-08-22-the-extensions-link-now-opens-the-extensions-tab-instead-o.md +6 -0
- package/corpus/templates/forms/server/lib/public-form-ssr.ts +11 -1
- package/corpus/templates/forms/vitest.config.ts +1 -0
- package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/macros/app/routes.ts +3 -1
- package/corpus/templates/macros/vitest.config.ts +6 -1
- package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/mail/actions/manage-gmail-filters.ts +10 -2
- package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +100 -37
- package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +14 -2
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +66 -36
- package/corpus/templates/mail/app/hooks/use-google-auth.ts +2 -0
- package/corpus/templates/mail/app/lib/google-oauth-setup.ts +17 -0
- package/corpus/templates/mail/app/pages/InboxPage.tsx +69 -9
- package/corpus/templates/mail/app/routes/$.tsx +9 -0
- package/corpus/templates/mail/app/routes/$view.$threadId.tsx +23 -1
- package/corpus/templates/mail/app/routes/$view.tsx +47 -1
- package/corpus/templates/mail/app/routes.ts +3 -1
- package/corpus/templates/mail/changelog/2026-08-22-gmail-can-now-connect-with-the-shared-google-oauth.md +6 -0
- package/corpus/templates/mail/changelog/2026-08-22-gmail-filters-now-shows-the-real-error.md +6 -0
- package/corpus/templates/mail/changelog/2026-08-22-unknown-mail-urls-now-show-the-404-page.md +6 -0
- package/corpus/templates/mail/server/handlers/google-auth.ts +11 -2
- package/corpus/templates/mail/server/lib/google-auth.ts +92 -12
- package/corpus/templates/mail/server/onboarding.ts +66 -18
- package/corpus/templates/mail/vitest.config.ts +6 -1
- package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/plan/app/routes/settings.tsx +4 -1
- package/corpus/templates/plan/app/routes.ts +3 -1
- package/corpus/templates/plan/changelog/2026-08-22-the-extensions-link-now-opens-the-extensions-tab-instead-o.md +6 -0
- package/corpus/templates/plan/netlify.toml +1 -1
- package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/slides/actions/patch-deck.ts +79 -10
- package/corpus/templates/slides/actions/update-slide.ts +11 -1
- package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +14 -4
- package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +10 -52
- package/corpus/templates/slides/app/components/editor/GoogleDocImportHint.tsx +8 -53
- package/corpus/templates/slides/app/components/editor/GoogleDriveConnectionCta.tsx +9 -75
- package/corpus/templates/slides/app/components/editor/GoogleSlidesReferenceImport.tsx +8 -60
- package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +10 -2
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +19 -7
- package/corpus/templates/slides/app/lib/sanitize-slide-html.ts +49 -36
- package/corpus/templates/slides/app/routes/access-request.approve.tsx +16 -9
- package/corpus/templates/slides/app/routes.ts +3 -1
- package/corpus/templates/slides/changelog/2026-08-22-already-uploaded-chat-images-are-no-longer-dropped.md +6 -0
- package/corpus/templates/slides/changelog/2026-08-22-google-drive-and-slides-can-now-connect-with-the-shared-google-oauth.md +6 -0
- package/corpus/templates/slides/changelog/2026-08-22-multi-slide-repairs-now-report-slides-that-still-overflow.md +6 -0
- package/corpus/templates/slides/changelog/2026-08-22-update-slide-now-reports-which-batched-edit-was-skipped.md +6 -0
- package/corpus/templates/slides/server/handlers/google-docs-auth.ts +52 -1
- package/corpus/templates/slides/server/lib/chat-attachments.ts +29 -3
- package/corpus/templates/slides/server/lib/google-docs-oauth.ts +66 -16
- package/corpus/templates/slides/server/lib/slide-content-patch.ts +13 -2
- package/corpus/templates/slides/server/plugins/agent-chat.ts +5 -2
- package/corpus/templates/slides/tsconfig.json +5 -0
- package/corpus/templates/slides/vitest.config.ts +6 -1
- package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +11 -4
- package/corpus/templates/tasks/app/routes/settings.tsx +4 -1
- package/corpus/templates/tasks/app/routes.ts +3 -1
- package/corpus/templates/tasks/changelog/2026-08-22-the-extensions-link-now-opens-the-extensions-tab-instead-o.md +6 -0
- package/corpus/templates/tasks/vitest.config.ts +7 -1
- package/dist/action.d.ts +91 -0
- package/dist/action.js +50 -0
- package/dist/agent/abort-reasons.d.ts +38 -0
- package/dist/agent/abort-reasons.js +49 -0
- package/dist/agent/engine/ai-sdk-engine.js +8 -5
- package/dist/agent/engine/anthropic-engine.js +7 -5
- package/dist/agent/engine/first-event-timeout.d.ts +42 -17
- package/dist/agent/engine/first-event-timeout.js +67 -25
- package/dist/agent/production-agent.d.ts +23 -0
- package/dist/agent/production-agent.js +107 -102
- package/dist/agent/run-loop-with-resume.d.ts +2 -28
- package/dist/agent/run-loop-with-resume.js +25 -40
- package/dist/agent/run-manager.js +5 -4
- package/dist/agent/run-store.d.ts +55 -0
- package/dist/agent/run-store.js +124 -1
- package/dist/agent/tool-search.js +2 -1
- package/dist/agent/types.d.ts +9 -4
- package/dist/app-config/auth.d.ts +1 -0
- package/dist/app-config/auth.js +7 -0
- package/dist/app-config/configuration-error.d.ts +11 -0
- package/dist/app-config/configuration-error.js +14 -0
- package/dist/app-config/index.d.ts +1 -0
- package/dist/app-config/index.js +1 -0
- package/dist/app-config/integrations.d.ts +1 -0
- package/dist/app-config/integrations.js +10 -0
- package/dist/app-config/plugins.d.ts +34 -0
- package/dist/app-config/plugins.js +39 -0
- package/dist/app-config/run-lifecycle-invariants.d.ts +18 -9
- package/dist/app-config/run-lifecycle-invariants.js +18 -25
- package/dist/app-config/schema.d.ts +17 -0
- package/dist/app-config/schema.js +2 -0
- package/dist/chat-threads/schema-migrations.js +20 -0
- package/dist/chat-threads/store.js +21 -4
- package/dist/cli/native-dependencies.d.ts +4 -0
- package/dist/cli/native-dependencies.js +15 -0
- package/dist/client/EnvironmentBadge.d.ts +1 -1
- package/dist/client/EnvironmentBadge.js +40 -5
- package/dist/client/MultiTabAssistantChat.d.ts +1 -1
- package/dist/client/MultiTabAssistantChat.js +35 -14
- package/dist/client/agent-chat/index.d.ts +1 -1
- package/dist/client/agent-chat/index.js +1 -1
- package/dist/client/agent-page/use-jobs.d.ts +2 -1
- package/dist/client/agent-page/use-jobs.js +3 -5
- package/dist/client/agent-sidebar-state.js +3 -1
- package/dist/client/blocks/library/code-tabs.js +5 -0
- package/dist/client/blocks/library/code.js +1 -0
- package/dist/client/chat-first/apps-rail.js +2 -2
- package/dist/client/chat-model-groups.d.ts +12 -0
- package/dist/client/chat-model-groups.js +3 -2
- package/dist/client/integrations/GoogleProductLogo.d.ts +5 -0
- package/dist/client/integrations/GoogleProductLogo.js +45 -0
- package/dist/client/integrations/index.d.ts +2 -0
- package/dist/client/integrations/index.js +2 -0
- package/dist/client/integrations/workspace-provider-oauth.d.ts +8 -0
- package/dist/client/integrations/workspace-provider-oauth.js +13 -0
- package/dist/client/resources/mcp-integration-catalog.js +0 -29
- package/dist/client/settings/SettingsTabsPage.js +10 -6
- package/dist/client/sharing/ShareButton.js +11 -2
- package/dist/client/use-chat-models.d.ts +6 -0
- package/dist/client/use-chat-models.js +10 -0
- package/dist/client/use-db-sync.js +27 -9
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/connections/catalog.d.ts +111 -9
- package/dist/connections/catalog.js +86 -30
- package/dist/db/create-get-db.js +18 -0
- package/dist/db/ddl-guard.d.ts +0 -4
- package/dist/db/ddl-guard.js +46 -0
- package/dist/deploy/build.d.ts +19 -0
- package/dist/deploy/build.js +190 -16
- package/dist/deploy/function-bundle.d.ts +45 -0
- package/dist/deploy/function-bundle.js +337 -0
- package/dist/deploy/workspace-deploy.js +19 -1
- package/dist/eject/workspace-connections.js +4 -0
- package/dist/email-catalog/registry.d.ts +4 -0
- package/dist/email-catalog/registry.js +79 -14
- package/dist/extensions/content-patch.js +14 -2
- package/dist/integrations/plugin.d.ts +10 -0
- package/dist/integrations/plugin.js +40 -6
- package/dist/jobs/actions/run-automation-now.d.ts +2 -1
- package/dist/jobs/actions/run-automation-now.js +11 -5
- package/dist/jobs/frontmatter.js +53 -2
- package/dist/jobs/run-now.d.ts +11 -1
- package/dist/jobs/run-now.js +42 -7
- package/dist/jobs/scheduler.d.ts +1 -0
- package/dist/jobs/scheduler.js +2 -1
- package/dist/localization/core-messages/ar-SA.js +3 -0
- package/dist/localization/core-messages/de-DE.js +3 -0
- package/dist/localization/core-messages/en-US.d.ts +3 -0
- package/dist/localization/core-messages/en-US.js +3 -0
- package/dist/localization/core-messages/es-ES.js +3 -0
- package/dist/localization/core-messages/fr-FR.js +3 -0
- package/dist/localization/core-messages/hi-IN.js +3 -0
- package/dist/localization/core-messages/ja-JP.js +3 -0
- package/dist/localization/core-messages/ko-KR.js +3 -0
- package/dist/localization/core-messages/pt-BR.js +3 -0
- package/dist/localization/core-messages/zh-CN.js +3 -0
- package/dist/localization/core-messages/zh-TW.js +3 -0
- package/dist/localization/core-messages.d.ts +3 -0
- package/dist/localization/default-messages.d.ts +2 -5
- package/dist/localization/default-messages.js +2 -5
- package/dist/mcp/build-server.d.ts +9 -0
- package/dist/mcp/build-server.js +37 -8
- package/dist/mcp-client/oauth-client.d.ts +7 -0
- package/dist/mcp-client/oauth-client.js +12 -1
- package/dist/oauth-tokens/index.d.ts +1 -1
- package/dist/oauth-tokens/index.js +1 -1
- package/dist/oauth-tokens/lifecycle.d.ts +11 -0
- package/dist/oauth-tokens/lifecycle.js +17 -0
- package/dist/oauth-tokens/store.js +7 -0
- package/dist/observability/posthog-ai.d.ts +15 -1
- package/dist/observability/posthog-ai.js +24 -12
- package/dist/observability/traces.js +158 -28
- package/dist/onboarding/app-profile.js +2 -2
- package/dist/onboarding/plugin.js +10 -2
- package/dist/onboarding/types.d.ts +2 -0
- package/dist/provider-api/actions/custom-provider-registration.d.ts +1 -1
- package/dist/provider-api/actions/provider-api.d.ts +2 -2
- package/dist/provider-api/index.js +2 -0
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/resources/store.js +13 -4
- package/dist/scripts/agent-engines/list-agent-engines.js +29 -3
- package/dist/secrets/register-framework-secrets.js +1 -1
- package/dist/server/action-discovery.js +5 -0
- package/dist/server/agent-chat/action-filters-a2a.d.ts +27 -3
- package/dist/server/agent-chat/action-filters-a2a.js +48 -9
- package/dist/server/agent-chat-plugin.js +36 -9
- package/dist/server/agent-discovery.js +43 -20
- package/dist/server/auth.js +18 -16
- package/dist/server/beta-opt-out-html.js +45 -4
- package/dist/server/better-auth-instance.d.ts +2 -1
- package/dist/server/better-auth-instance.js +37 -7
- package/dist/server/builder-design-systems.d.ts +4 -1
- package/dist/server/builder-design-systems.js +87 -6
- package/dist/server/builder-oauth.d.ts +1 -7
- package/dist/server/builder-oauth.js +80 -163
- package/dist/server/core-routes-plugin.d.ts +29 -0
- package/dist/server/core-routes-plugin.js +100 -20
- package/dist/server/default-plugins.d.ts +18 -0
- package/dist/server/default-plugins.js +22 -0
- package/dist/server/edge.d.ts +1 -0
- package/dist/server/edge.js +1 -0
- package/dist/server/framework-request-handler.js +31 -3
- package/dist/server/google-oauth.d.ts +3 -0
- package/dist/server/google-oauth.js +3 -0
- package/dist/server/index.d.ts +4 -4
- package/dist/server/index.js +3 -3
- package/dist/server/onboarding-html.js +37 -3
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/server/workspace-provider-oauth.d.ts +6 -1
- package/dist/server/workspace-provider-oauth.js +72 -20
- package/dist/shared/agent-sidebar-url.d.ts +1 -0
- package/dist/shared/agent-sidebar-url.js +1 -0
- package/dist/shared/environment-lanes.d.ts +2 -0
- package/dist/shared/environment-lanes.js +3 -1
- package/dist/shared/index.d.ts +3 -1
- package/dist/shared/index.js +3 -1
- package/dist/shared/surface-visibility.d.ts +31 -0
- package/dist/shared/surface-visibility.js +57 -0
- package/dist/templates/chat/.agents/skills/secrets/SKILL.md +11 -4
- package/dist/templates/chat/app/routes.ts +3 -1
- package/dist/templates/chat/vitest.config.ts +8 -0
- package/dist/templates/default/.agents/skills/secrets/SKILL.md +11 -4
- package/dist/templates/default/app/routes.ts +3 -1
- package/dist/templates/headless/.agents/skills/secrets/SKILL.md +11 -4
- package/dist/templates/workspace-core/.agents/skills/secrets/SKILL.md +11 -4
- package/dist/tracking/registry.d.ts +11 -0
- package/dist/tracking/registry.js +5 -2
- package/dist/triggers/actions.js +10 -3
- package/dist/usage/store.js +23 -3
- package/dist/user-profile/actions/get-auth-methods.js +18 -5
- package/dist/vite/client.js +33 -7
- package/docs/content/actions-access-control.mdx +43 -4
- package/docs/content/actions-defining.mdx +16 -0
- package/docs/content/authentication.mdx +40 -21
- package/docs/content/environment-variables.mdx +1 -0
- package/docs/content/template-clips-capture-everywhere.mdx +29 -30
- package/docs/content/template-clips-developers.mdx +4 -4
- package/docs/content/template-clips.mdx +3 -1
- package/package.json +2 -2
- package/src/eject/workspace-connections.ts +4 -0
- package/src/templates/chat/.agents/skills/secrets/SKILL.md +11 -4
- package/src/templates/chat/app/routes.ts +3 -1
- package/src/templates/chat/vitest.config.ts +8 -0
- package/src/templates/default/.agents/skills/secrets/SKILL.md +11 -4
- package/src/templates/default/app/routes.ts +3 -1
- package/src/templates/headless/.agents/skills/secrets/SKILL.md +11 -4
- package/src/templates/workspace-core/.agents/skills/secrets/SKILL.md +11 -4
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# Repair Content Mermaid rendering — Shape
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Shape complete. This brief is read-only product and architecture guidance for
|
|
6
|
+
Bowerbird task `c42a4e5a-631a-420d-8052-2fc867df8855`, supplied revision
|
|
7
|
+
`b774078aa6c7f7f0492c9788ee2912df54ee92933ecdd4094c2963656698a0f9`.
|
|
8
|
+
No implementation, test fixture, deployment, production mutation, push, or pull
|
|
9
|
+
request is authorized by this artifact.
|
|
10
|
+
|
|
11
|
+
Repository evidence is bound to `BuilderIO/agent-native` commit
|
|
12
|
+
`17f227e777dd8dfe8727390ea0ca852225cf2548`.
|
|
13
|
+
|
|
14
|
+
## Reporter evidence
|
|
15
|
+
|
|
16
|
+
The exact Slack parent is in `#product-agent-native-feedback`
|
|
17
|
+
(`C0ATH3CCZT4`) at `1786440893.568689`, posted by Lautaro Lihue Galarza on
|
|
18
|
+
2026-08-11. It says only: ``Content` mermaid is not loading.`The thread has no
|
|
19
|
+
replies and contains one file,`image.png` (`F0BPECYC57U`). Slack search returns
|
|
20
|
+
no document link or Mermaid source in the message or surrounding context.
|
|
21
|
+
|
|
22
|
+
The attachment could not be materialized because the current Slack connection
|
|
23
|
+
lacks the file-read scope. Therefore the screenshot, reporter document, exact
|
|
24
|
+
stored NFM/MDX, Mermaid source, hosted artifact identity, console output, and
|
|
25
|
+
network trace remain unavailable. Do not invent a reproduction from the seeded
|
|
26
|
+
slash-command example and do not treat that example passing as reporter-exact
|
|
27
|
+
acceptance.
|
|
28
|
+
|
|
29
|
+
## Current boundary
|
|
30
|
+
|
|
31
|
+
Content registers the shared core block library in its browser registry. A
|
|
32
|
+
persisted Mermaid atom remains inline in `documents.content` as NFM/MDX on the
|
|
33
|
+
Tiptap node's `__raw` attribute; Content has no Mermaid-specific sidecar store.
|
|
34
|
+
On first render, `useRegistryBlockStore` asynchronously parses that raw source
|
|
35
|
+
into typed registry data and exposes it to the shared registry NodeView.
|
|
36
|
+
|
|
37
|
+
There are two distinct failure boundaries:
|
|
38
|
+
|
|
39
|
+
1. **Content registry hydration.** Successful parsing is cached and forces the
|
|
40
|
+
NodeView to reread its side map. A missing raw value, a `null` parse result, or
|
|
41
|
+
a rejected parse remains indistinguishable from “still loading”; the rejection
|
|
42
|
+
is swallowed and the NodeView stays on its placeholder. This is a directly
|
|
43
|
+
evidenced indefinite-state defect at the host boundary, independent of
|
|
44
|
+
Mermaid syntax.
|
|
45
|
+
2. **Shared Mermaid rendering.** Once typed data exists, core dynamically loads
|
|
46
|
+
the Excalidraw converter and renderer, then falls back to Mermaid. When both
|
|
47
|
+
paths reject, it already shows the raw source plus `Could not render diagram`
|
|
48
|
+
and both error messages. The current focused render test proves only the
|
|
49
|
+
mocked Excalidraw success/expand path; round-trip coverage proves seeded
|
|
50
|
+
Mermaid source fidelity, not failed hydration, dynamic-import failure, or the
|
|
51
|
+
reporter's source.
|
|
52
|
+
|
|
53
|
+
Direct evidence does not identify which boundary Lautaro encountered. The
|
|
54
|
+
visible “not loading” symptom is consistent with Content hydration never
|
|
55
|
+
settling, an older hosted bundle, or a browser/runtime request that never
|
|
56
|
+
settles. Unsupported Mermaid syntax alone should reach the existing bounded
|
|
57
|
+
dual-renderer error after hydration and is therefore a weaker fit, but remains
|
|
58
|
+
an inference until the exact source is recovered.
|
|
59
|
+
|
|
60
|
+
## Product classification
|
|
61
|
+
|
|
62
|
+
This is a **contract repair** in Content's document editing workflow. The
|
|
63
|
+
accepted behavior is that a persisted structured block becomes either usable
|
|
64
|
+
content or an explicit recoverable error; absence, unreadability, and pending
|
|
65
|
+
work must not collapse into the same successful-looking placeholder. No current
|
|
66
|
+
Feature or Capability record specifically names registry-block hydration or
|
|
67
|
+
Mermaid rendering, so Work must not invent a stable product ID solely for PR
|
|
68
|
+
metadata. If the advisory Content impact declaration requires an ID, record the
|
|
69
|
+
catalog gap rather than broadening this repair into a new product contract.
|
|
70
|
+
|
|
71
|
+
## Smallest compatible delta
|
|
72
|
+
|
|
73
|
+
Keep inline NFM/MDX as the authority and keep the shared block registry and
|
|
74
|
+
shared Mermaid renderer. Change only the boundary proven to fail by the
|
|
75
|
+
reporter-exact replay:
|
|
76
|
+
|
|
77
|
+
- If persisted registry hydration fails or produces no typed block, carry a
|
|
78
|
+
distinct typed error through the side-map/NodeView and render the preserved raw
|
|
79
|
+
block source with a bounded, useful error. Do not silently retry forever or
|
|
80
|
+
coerce unreadable data to an empty block.
|
|
81
|
+
- If hydration succeeds and the reporter artifact instead proves a shared
|
|
82
|
+
dynamic-import or renderer defect, repair the shared core Mermaid boundary,
|
|
83
|
+
preserving Excalidraw-first rendering and Mermaid fallback.
|
|
84
|
+
- If current accepted hosted code renders the exact artifact, classify the
|
|
85
|
+
report as stale deployment or already repaired and close with artifact-bound
|
|
86
|
+
evidence; do not create a speculative code change.
|
|
87
|
+
|
|
88
|
+
Do not redesign registry storage, add a Mermaid table/sidecar, change the NFM
|
|
89
|
+
format, merge this with native Code Block or media insertion, add a new route or
|
|
90
|
+
Action, or expand into generic registry observability.
|
|
91
|
+
|
|
92
|
+
## Frozen successful-user story
|
|
93
|
+
|
|
94
|
+
> When Lautaro opens the originally reported Content document on the exact
|
|
95
|
+
> accepted hosted artifact, its persisted Mermaid block leaves loading in a
|
|
96
|
+
> bounded time: valid source renders and remains rendered after navigation and
|
|
97
|
+
> reload; invalid, unsupported, or unreadable persisted source preserves the raw
|
|
98
|
+
> source and shows a useful error. A failed browser chunk/import is visible in
|
|
99
|
+
> console/network evidence and never becomes an indefinite placeholder.
|
|
100
|
+
|
|
101
|
+
Required assertions:
|
|
102
|
+
|
|
103
|
+
1. Retrieve the reporter's exact document and persisted Mermaid source, or
|
|
104
|
+
record with evidence that they are unavailable; do not substitute seeded
|
|
105
|
+
source for the reporter-exact assertion.
|
|
106
|
+
2. On the exact accepted hosted artifact, valid reporter source renders and
|
|
107
|
+
survives navigation plus reload without changing the persisted source.
|
|
108
|
+
3. Invalid/unsupported Mermaid source reaches the existing raw-source plus
|
|
109
|
+
bounded-error state when hydration succeeds.
|
|
110
|
+
4. Missing, malformed, or rejected registry hydration reaches a distinct
|
|
111
|
+
raw-source plus bounded-error state and cannot remain indefinitely loading.
|
|
112
|
+
5. Excalidraw failure followed by Mermaid success renders; dual-renderer failure
|
|
113
|
+
preserves raw source and reports both failures.
|
|
114
|
+
6. Real-interface evidence includes the artifact identity, document identity,
|
|
115
|
+
persisted source identity or sanitized exact source, console and network
|
|
116
|
+
inspection for dynamic imports, and a screenshot or recording of final valid
|
|
117
|
+
and error states.
|
|
118
|
+
|
|
119
|
+
Acceptance policy:
|
|
120
|
+
|
|
121
|
+
- Modality: `real-interface`
|
|
122
|
+
- Independence: `preferred`
|
|
123
|
+
- Custody: `same-context-allowed`
|
|
124
|
+
- Interface: the authenticated hosted Content editor on the exact accepted
|
|
125
|
+
artifact, using the reporter document or an exact sanitized copy when access
|
|
126
|
+
policy forbids direct replay
|
|
127
|
+
- Rationale: the failure spans persisted source, async browser hydration, and
|
|
128
|
+
runtime chunks, so unit tests alone cannot prove the user story; independent
|
|
129
|
+
review is useful but not part of the reporter's requested outcome
|
|
130
|
+
|
|
131
|
+
## Frozen five
|
|
132
|
+
|
|
133
|
+
- **Outcome:** Persisted Mermaid blocks always settle to a correct rendered
|
|
134
|
+
diagram or an explicit raw-source error; never indefinite loading.
|
|
135
|
+
- **Shipping surface:** `BuilderIO/agent-native`; Content authenticated document
|
|
136
|
+
editor for Content users; durable destination is the Content template and any
|
|
137
|
+
necessary shared core registry/Mermaid boundary; ordinary integration action
|
|
138
|
+
is `merge` through a review-ready pull request after Work and Land authority.
|
|
139
|
+
- **Governing architecture:** Inline NFM/MDX remains authoritative; Content owns
|
|
140
|
+
registry hydration and core owns shared Mermaid rendering. Repair the first
|
|
141
|
+
demonstrated failing boundary without introducing parallel storage or a
|
|
142
|
+
caller-specific renderer.
|
|
143
|
+
- **Acceptance story:** `content-mermaid-settles-v1`, exactly as frozen above.
|
|
144
|
+
- **Risk strategy:** `system-ready`; production validation after merge is
|
|
145
|
+
`false`. Work must reproduce and verify on an accepted hosted artifact before
|
|
146
|
+
Land rather than merge first and test in production.
|
|
147
|
+
|
|
148
|
+
## Architecture grounding
|
|
149
|
+
|
|
150
|
+
- Applicability: required, because the defect crosses Content's registry host
|
|
151
|
+
and the shared core block renderer.
|
|
152
|
+
- Demonstrated caller: Lautaro opening a persisted Mermaid block in Content;
|
|
153
|
+
exact document/source unresolved.
|
|
154
|
+
- Existing primitives: Content browser registry, inline `__raw` NFM/MDX,
|
|
155
|
+
`parseRegistryBlockData`, registry side-map/NodeView, shared `MermaidRead`,
|
|
156
|
+
Excalidraw dynamic import, Mermaid fallback.
|
|
157
|
+
- Ownership: Content owns persistence hydration and error transport into the
|
|
158
|
+
NodeView; core owns shared Mermaid conversion/rendering and renderer errors.
|
|
159
|
+
- Legacy contracts: byte-preserving inline round-trip for untouched blocks;
|
|
160
|
+
shared registry types; Excalidraw-first house style; Mermaid fallback; raw
|
|
161
|
+
source retained on errors; unrelated registry blocks unchanged.
|
|
162
|
+
- Smallest compatible delta: typed, terminal hydration failure at the Content
|
|
163
|
+
boundary unless the reporter-exact replay directly proves a core renderer or
|
|
164
|
+
deployment defect.
|
|
165
|
+
- Deferred: storage redesign, generic block telemetry, new Actions/routes,
|
|
166
|
+
native Code Block/media behavior, registry-wide migration.
|
|
167
|
+
- Reversibility: a narrow state/error-path change with focused hydration and
|
|
168
|
+
renderer tests; no schema or persisted-format migration.
|
|
169
|
+
- Unresolved owner questions: none that change a public/shared contract. The
|
|
170
|
+
missing reporter artifact is an acceptance prerequisite, not a product
|
|
171
|
+
decision.
|
|
172
|
+
|
|
173
|
+
## Work entry condition
|
|
174
|
+
|
|
175
|
+
Work may begin from this shape, but reporter-exact system-ready acceptance is
|
|
176
|
+
blocked until Slack file access is reauthenticated or Lautaro's document/source
|
|
177
|
+
is otherwise recovered from an authorized source. Work should first retry that
|
|
178
|
+
read-only retrieval and bind the hosted artifact before choosing whether any
|
|
179
|
+
code change is needed.
|
|
180
|
+
|
|
181
|
+
## Approved replacement acceptance revision
|
|
182
|
+
|
|
183
|
+
Alice explicitly approved this material acceptance and risk-policy change on
|
|
184
|
+
2026-08-21 for PR #3350. This revision supersedes the reporter-exact hosted
|
|
185
|
+
replay, exact-head approval-age distinction, and base-drift acceptance
|
|
186
|
+
objections for this merge decision. The earlier story remains above as
|
|
187
|
+
historical context, but it is no longer the governing Land gate for this PR.
|
|
188
|
+
|
|
189
|
+
Replacement successful-user story:
|
|
190
|
+
|
|
191
|
+
> PR #3350 is acceptable to integrate when its intended current head is
|
|
192
|
+
> mergeable under the repository's live GitHub policy and every
|
|
193
|
+
> repository-required CI check for that head has passed or reached another
|
|
194
|
+
> repository-permitted terminal state.
|
|
195
|
+
|
|
196
|
+
Required assertions:
|
|
197
|
+
|
|
198
|
+
1. The live PR head equals the intended pushed branch head.
|
|
199
|
+
2. Every repository-required CI check for that head is successful or otherwise
|
|
200
|
+
accepted by the repository's live merge policy.
|
|
201
|
+
3. GitHub reports the PR mergeable and permits a normal, non-admin merge.
|
|
202
|
+
4. The PR title and description accurately describe the current diff and its
|
|
203
|
+
verification evidence.
|
|
204
|
+
|
|
205
|
+
Replacement acceptance policy:
|
|
206
|
+
|
|
207
|
+
- Modality: `automated`
|
|
208
|
+
- Independence: `not-required`
|
|
209
|
+
- Custody: `same-context-allowed`
|
|
210
|
+
- Interface: the live GitHub PR, checks, mergeability state, and normal merge
|
|
211
|
+
operation for PR #3350
|
|
212
|
+
- Rationale: Alice explicitly accepted current repository mergeability and
|
|
213
|
+
required CI as sufficient evidence for this PR and discarded the earlier
|
|
214
|
+
reporter-exact, approval-age, and base-drift gates
|
|
215
|
+
|
|
216
|
+
Revised frozen five:
|
|
217
|
+
|
|
218
|
+
- **Outcome:** Integrate PR #3350 once the live repository accepts its current
|
|
219
|
+
head and required CI.
|
|
220
|
+
- **Shipping surface:** `BuilderIO/agent-native`; Content authenticated document
|
|
221
|
+
editor for Content users; durable destination is `main`; ordinary integration
|
|
222
|
+
action is a normal GitHub merge of PR #3350.
|
|
223
|
+
- **Governing architecture:** Unchanged from the original shape; inline NFM/MDX
|
|
224
|
+
remains authoritative, Content owns registry hydration, and core owns shared
|
|
225
|
+
Mermaid rendering.
|
|
226
|
+
- **Acceptance story:** `content-mermaid-repository-mergeable-v2`, exactly as
|
|
227
|
+
frozen in this revision.
|
|
228
|
+
- **Risk strategy:** `system-ready`; production validation after merge remains
|
|
229
|
+
`false`, with Alice explicitly accepting repository mergeability and required
|
|
230
|
+
CI as sufficient for this merge decision.
|
|
231
|
+
|
|
232
|
+
Lifecycle authority is restored for the already-requested direct Land handoff
|
|
233
|
+
at ledger revision `content-mermaid-repository-mergeable-v2-20260821`.
|
|
@@ -67,9 +67,16 @@ Content's Notion access is per-user OAuth only. Never ask for or use NOTION_API_
|
|
|
67
67
|
search: async (query: string) => {
|
|
68
68
|
const db = getDb();
|
|
69
69
|
const ownerEmail = getCurrentOwnerEmail();
|
|
70
|
+
// Project only id/title/parentId — documents.content is the full
|
|
71
|
+
// page body and must not be pulled into this per-keystroke search.
|
|
72
|
+
const mentionColumns = {
|
|
73
|
+
id: documents.id,
|
|
74
|
+
title: documents.title,
|
|
75
|
+
parentId: documents.parentId,
|
|
76
|
+
};
|
|
70
77
|
const rows = query
|
|
71
78
|
? await db
|
|
72
|
-
.select()
|
|
79
|
+
.select(mentionColumns)
|
|
73
80
|
.from(documents)
|
|
74
81
|
.where(
|
|
75
82
|
and(
|
|
@@ -79,7 +86,7 @@ Content's Notion access is per-user OAuth only. Never ask for or use NOTION_API_
|
|
|
79
86
|
)
|
|
80
87
|
.limit(15)
|
|
81
88
|
: await db
|
|
82
|
-
.select()
|
|
89
|
+
.select(mentionColumns)
|
|
83
90
|
.from(documents)
|
|
84
91
|
.where(eq(documents.ownerEmail, ownerEmail))
|
|
85
92
|
.orderBy(desc(documents.updatedAt))
|
|
@@ -16,7 +16,13 @@ export default mergeConfig(
|
|
|
16
16
|
},
|
|
17
17
|
test: {
|
|
18
18
|
include: ["**/*.{test,spec}.?(c|m)[jt]s?(x)"],
|
|
19
|
-
exclude: [
|
|
19
|
+
exclude: [
|
|
20
|
+
"**/node_modules/**",
|
|
21
|
+
"**/.git/**",
|
|
22
|
+
"**/dist/**",
|
|
23
|
+
"**/.react-router/**",
|
|
24
|
+
"**/e2e/**",
|
|
25
|
+
],
|
|
20
26
|
hookTimeout: 60_000,
|
|
21
27
|
testTimeout: 60_000,
|
|
22
28
|
maxWorkers: "50%",
|
|
@@ -19,10 +19,17 @@ data, and generated extension/app content may mention credential **names** such
|
|
|
19
19
|
as `OPENAI_API_KEY`, but must not contain real API keys, tokens, webhook URLs,
|
|
20
20
|
signing secrets, OAuth refresh tokens, or private Builder/customer data.
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`${keys.NAME}` substitution.
|
|
25
|
-
|
|
22
|
+
Provider secret values are supplied at runtime through the encrypted
|
|
23
|
+
`app_secrets` vault, `saveCredential` / `resolveCredential`, OAuth, or
|
|
24
|
+
`${keys.NAME}` substitution. Deployment configuration is reserved for
|
|
25
|
+
deploy-level secrets and non-provider configuration. Examples must use obvious
|
|
26
|
+
placeholders such as `<OPENAI_API_KEY>` or `${keys.SLACK_WEBHOOK}`, not
|
|
27
|
+
real-looking copied values.
|
|
28
|
+
|
|
29
|
+
Provider credentials and provider account identifiers are workspace data. Use
|
|
30
|
+
standard workspace connections and org/workspace vault scopes; never put them
|
|
31
|
+
in `.env` or deployment environment variables, and never add a provider-specific
|
|
32
|
+
action or startup bootstrap just to write a credential for one organization.
|
|
26
33
|
|
|
27
34
|
## Credential Modeling Preflight
|
|
28
35
|
|
|
@@ -19,10 +19,17 @@ data, and generated extension/app content may mention credential **names** such
|
|
|
19
19
|
as `OPENAI_API_KEY`, but must not contain real API keys, tokens, webhook URLs,
|
|
20
20
|
signing secrets, OAuth refresh tokens, or private Builder/customer data.
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`${keys.NAME}` substitution.
|
|
25
|
-
|
|
22
|
+
Provider secret values are supplied at runtime through the encrypted
|
|
23
|
+
`app_secrets` vault, `saveCredential` / `resolveCredential`, OAuth, or
|
|
24
|
+
`${keys.NAME}` substitution. Deployment configuration is reserved for
|
|
25
|
+
deploy-level secrets and non-provider configuration. Examples must use obvious
|
|
26
|
+
placeholders such as `<OPENAI_API_KEY>` or `${keys.SLACK_WEBHOOK}`, not
|
|
27
|
+
real-looking copied values.
|
|
28
|
+
|
|
29
|
+
Provider credentials and provider account identifiers are workspace data. Use
|
|
30
|
+
standard workspace connections and org/workspace vault scopes; never put them
|
|
31
|
+
in `.env` or deployment environment variables, and never add a provider-specific
|
|
32
|
+
action or startup bootstrap just to write a credential for one organization.
|
|
26
33
|
|
|
27
34
|
## Credential Modeling Preflight
|
|
28
35
|
|