@agent-native/core 0.165.3 → 0.167.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/corpus/README.md +1 -1
- package/corpus/templates/analytics/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/analytics/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/analytics/CHANGELOG.md +740 -2
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +93 -56
- package/corpus/templates/analytics/app/i18n-data.ts +23 -20
- package/corpus/templates/analytics/app/pages/Settings.tsx +0 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +0 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +1 -1
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +2 -1
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +0 -1
- package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +0 -32
- package/corpus/templates/analytics/server/lib/session-replay.ts +1 -5
- package/corpus/templates/assets/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/assets/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/assets/CHANGELOG.md +204 -2
- package/corpus/templates/assets/actions/navigate.ts +2 -2
- package/corpus/templates/assets/actions/save-generated-image.ts +0 -5
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +2 -262
- package/corpus/templates/assets/app/routes/library.tsx +1 -1
- package/corpus/templates/assets/app/routes/settings.tsx +0 -3
- package/corpus/templates/brain/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/brain/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/brain/CHANGELOG.md +145 -2
- package/corpus/templates/brain/actions/ask-brain.ts +0 -1
- package/corpus/templates/brain/actions/navigate.ts +2 -2
- package/corpus/templates/brain/app/routes/sources.tsx +0 -4
- package/corpus/templates/brain/server/lib/capture-sanitization.ts +0 -11
- package/corpus/templates/calendar/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/calendar/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/calendar/CHANGELOG.md +272 -2
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +0 -20
- package/corpus/templates/calendar/app/pages/CalendarView.tsx +0 -1
- package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/chat/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/chat/CHANGELOG.md +89 -2
- package/corpus/templates/chat/actions/navigate.ts +2 -2
- package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/clips/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/clips/CHANGELOG.md +865 -2
- package/corpus/templates/clips/actions/import-loom-recording.ts +16 -4
- package/corpus/templates/clips/actions/navigate.ts +2 -2
- package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +0 -1
- package/corpus/templates/clips/app/components/library/space-dialogs.tsx +0 -1
- package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +0 -1
- package/corpus/templates/clips/app/components/player/clips-share-trigger.tsx +17 -0
- package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +3 -3
- package/corpus/templates/clips/app/components/player/video-player.tsx +2 -2
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +0 -1
- package/corpus/templates/clips/app/components/settings/ai-setup-section.tsx +0 -1
- package/corpus/templates/clips/app/global.css +31 -0
- package/corpus/templates/clips/app/hooks/use-playback-position.ts +0 -2
- package/corpus/templates/clips/app/lib/download-release-channel.ts +10 -0
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +1 -3
- package/corpus/templates/clips/app/routes/download.tsx +67 -44
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +7 -12
- package/corpus/templates/clips/app/routes/record.tsx +6 -6
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +26 -29
- package/corpus/templates/clips/changelog/2026-08-20-clip-viewer-share-actions.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-20-preparing-recording-countdown-overlay.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/background.ts +0 -13
- package/corpus/templates/clips/chrome-extension/src/overlay.ts +0 -1
- package/corpus/templates/clips/chrome-extension/src/popup.ts +0 -20
- package/corpus/templates/clips/desktop/src/app.tsx +6 -18
- package/corpus/templates/clips/desktop/src/hooks/useMediaDevices.ts +0 -1
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +0 -8
- package/corpus/templates/clips/desktop/src/overlays/preparing.tsx +4 -6
- package/corpus/templates/clips/desktop/src/styles.css +18 -20
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +9 -17
- package/corpus/templates/content/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/content/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/content/CHANGELOG.md +503 -2
- package/corpus/templates/content/actions/_database-source-utils.ts +0 -3
- package/corpus/templates/content/actions/attach-content-database-source.ts +1 -4
- package/corpus/templates/content/actions/navigate.ts +2 -2
- package/corpus/templates/content/actions/prepare-builder-source-execution.ts +1 -1
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +0 -6
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +0 -580
- package/corpus/templates/content/app/components/editor/database/FormView.tsx +2 -2
- package/corpus/templates/content/app/components/editor/database/filter-sort.ts +1 -1
- package/corpus/templates/content/app/components/editor/database/settings.tsx +0 -23
- package/corpus/templates/content/app/components/editor/database/sidebar.tsx +0 -1
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +8 -304
- package/corpus/templates/content/app/hooks/use-documents.ts +0 -1
- package/corpus/templates/content/shared/api.ts +0 -1
- package/corpus/templates/content/shared/builder-mdx.ts +0 -1
- package/corpus/templates/content/shared/nfm.ts +1 -7
- package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/crm/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/crm/CHANGELOG.md +31 -2
- package/corpus/templates/crm/actions/merge-crm-records.ts +0 -4
- package/corpus/templates/crm/app/components/crm/record/RecordLists.tsx +0 -1
- package/corpus/templates/crm/server/crm/hubspot-adapter.ts +0 -1
- package/corpus/templates/crm/server/crm/salesforce-adapter.ts +0 -1
- package/corpus/templates/crm/server/db/crm-store.ts +1 -1
- package/corpus/templates/design/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/design/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +1 -14
- package/corpus/templates/design/AGENTS.md +2 -1
- package/corpus/templates/design/CHANGELOG.md +870 -2
- package/corpus/templates/design/actions/apply-component-prop-edit.ts +1 -5
- package/corpus/templates/design/actions/generate-design.ts +0 -1
- package/corpus/templates/design/actions/generate-screens.ts +5 -2
- package/corpus/templates/design/actions/go-to-main-component.ts +2 -2
- package/corpus/templates/design/actions/list-design-systems.ts +10 -0
- package/corpus/templates/design/actions/navigate.ts +2 -2
- package/corpus/templates/design/actions/open-component-source.ts +4 -4
- package/corpus/templates/design/actions/present-design-variants.ts +1 -2
- package/corpus/templates/design/actions/run-design-audit.ts +0 -22
- package/corpus/templates/design/actions/show-design-questions.ts +5 -2
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +19 -8
- package/corpus/templates/design/app/components/design/EditPanel.tsx +11 -183
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +21 -4
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +1 -5
- package/corpus/templates/design/app/components/design/bridge/codegen.ts +1 -1
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +10 -19
- package/corpus/templates/design/app/components/design/edit-panel/appearance-properties.tsx +1 -1
- package/corpus/templates/design/app/components/design/edit-panel/layout-properties.tsx +13 -3
- package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +38 -32
- package/corpus/templates/design/app/components/design/edit-panel/position-layout-properties.tsx +1 -4
- package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +0 -4
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +15 -6
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +2 -2
- package/corpus/templates/design/app/components/visual-editor/NodeRewriteProposal.tsx +0 -1
- package/corpus/templates/design/app/components/visual-editor/ReviewCanvasPins.tsx +1 -1
- package/corpus/templates/design/app/i18n-data.ts +122 -0
- package/corpus/templates/design/app/lib/clipboard-content-lineage.ts +11 -1
- package/corpus/templates/design/app/pages/DesignEditor.tsx +50 -254
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +163 -8
- package/corpus/templates/design/app/pages/Index.tsx +17 -0
- package/corpus/templates/design/app/pages/design-editor/canvas-primitive-insert.ts +44 -32
- package/corpus/templates/design/app/pages/design-editor/canvas-primitives.ts +10 -0
- package/corpus/templates/design/app/pages/design-editor/clone-and-pen-edit.ts +49 -3
- package/corpus/templates/design/app/pages/design-editor/clone-idrefs.ts +31 -0
- package/corpus/templates/design/app/pages/design-editor/code-layer-state.ts +28 -0
- package/corpus/templates/design/app/pages/design-editor/commands/add-auto-layout.ts +3 -3
- package/corpus/templates/design/app/pages/design-editor/commands/align-selection.ts +44 -14
- package/corpus/templates/design/app/pages/design-editor/commands/apply-local-content-update.ts +16 -5
- package/corpus/templates/design/app/pages/design-editor/commands/change-selected-z-index.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/frame-selection.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/group-selection.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/nudge-selection.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/paste-selection.ts +142 -17
- package/corpus/templates/design/app/pages/design-editor/commands/screen-visual-duplicate-change.ts +1 -0
- package/corpus/templates/design/app/pages/design-editor/commands/ungroup-selection.ts +1 -1
- package/corpus/templates/design/app/pages/design-editor/commands/visual-duplicate-change.ts +1 -0
- package/corpus/templates/design/app/pages/design-editor/cross-screen-text-color.ts +25 -9
- package/corpus/templates/design/app/pages/design-editor/editor-state.ts +1 -0
- package/corpus/templates/design/app/pages/design-editor/measure-child-rects.ts +83 -0
- package/corpus/templates/design/app/pages/design-editor/paste-placement.ts +66 -0
- package/corpus/templates/design/server/routes/[...page].get.ts +0 -1
- package/corpus/templates/design/shared/code-layer.ts +120 -70
- package/corpus/templates/design/shared/design-surface-index.ts +0 -1
- package/corpus/templates/design/shared/pen-path.ts +0 -4
- package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/dispatch/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/dispatch/CHANGELOG.md +196 -2
- package/corpus/templates/dispatch/app/routes/integrations.tsx +0 -109
- package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/factory/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/factory/CHANGELOG.md +121 -2
- package/corpus/templates/factory/actions/navigate.ts +2 -2
- package/corpus/templates/factory/app/components/factory/FactoryAuditView.tsx +0 -13
- package/corpus/templates/factory/app/routes/factory.tsx +0 -1
- package/corpus/templates/factory/server/factory-graph/store.ts +0 -1
- package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/forms/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/forms/CHANGELOG.md +166 -2
- package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/macros/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/macros/CHANGELOG.md +49 -2
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +0 -1
- package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/mail/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/mail/CHANGELOG.md +201 -2
- package/corpus/templates/mail/app/components/email/EmailList.tsx +0 -1
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +2 -2
- package/corpus/templates/mail/shared/markdown.ts +3 -0
- package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/plan/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/plan/CHANGELOG.md +277 -2
- package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/slides/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/slides/CHANGELOG.md +437 -2
- package/corpus/templates/slides/actions/add-slide.ts +0 -1
- package/corpus/templates/slides/actions/list-decks.ts +1 -1
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +1 -4
- package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +0 -1
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +1 -1
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +1 -6
- package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +5 -1
- package/corpus/templates/tasks/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/corpus/templates/tasks/CHANGELOG.md +32 -2
- package/corpus/templates/tasks/app/components/layout/Layout.tsx +0 -1
- package/corpus/templates/tasks/app/hooks/use-visible-task-fields.ts +1 -4
- package/corpus/templates/tasks/server/custom-fields/store.ts +1 -6
- package/corpus/templates/tasks/shared/list-screen-snapshot.ts +2 -2
- package/dist/agent/engine/registry.js +27 -14
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/production-agent.d.ts +19 -6
- package/dist/agent/production-agent.js +57 -16
- package/dist/agent/types.d.ts +3 -0
- package/dist/changelog/parse.d.ts +3 -3
- package/dist/changelog/parse.js +35 -16
- package/dist/client/EnvironmentBadge.d.ts +1 -0
- package/dist/client/EnvironmentBadge.js +7 -0
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.js +248 -0
- package/dist/deploy/build.js +12 -1
- package/dist/index.d.ts +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +6 -6
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-chat/plugin-options.d.ts +3 -2
- package/dist/server/agent-chat-plugin.js +5 -2
- package/dist/server/index.d.ts +1 -1
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/templates/chat/.agents/skills/secrets/SKILL.md +5 -1
- package/dist/templates/chat/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/dist/templates/chat/CHANGELOG.md +89 -2
- package/dist/templates/chat/actions/navigate.ts +2 -2
- package/dist/templates/default/.agents/skills/secrets/SKILL.md +5 -1
- package/dist/templates/default/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/dist/templates/headless/.agents/skills/secrets/SKILL.md +5 -1
- package/dist/templates/workspace-core/.agents/skills/secrets/SKILL.md +5 -1
- package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/dist/vite/agent-native-config-loader.d.ts +1 -0
- package/dist/vite/agent-native-config-loader.js +3 -3
- package/dist/vite/agents-bundle-plugin.d.ts +1 -1
- package/dist/vite/agents-bundle-plugin.js +13 -1
- package/dist/vite/client.js +14 -14
- package/docs/content/agent-native-config.mdx +62 -11
- package/docs/content/agent-surfaces.mdx +6 -0
- package/docs/content/environment-variables.mdx +5 -2
- package/package.json +3 -3
- package/src/templates/chat/.agents/skills/secrets/SKILL.md +5 -1
- package/src/templates/chat/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/src/templates/chat/CHANGELOG.md +89 -2
- package/src/templates/chat/actions/navigate.ts +2 -2
- package/src/templates/default/.agents/skills/secrets/SKILL.md +5 -1
- package/src/templates/default/.agents/skills/workspace-conventions/SKILL.md +4 -1
- package/src/templates/headless/.agents/skills/secrets/SKILL.md +5 -1
- package/src/templates/workspace-core/.agents/skills/secrets/SKILL.md +5 -1
- package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +4 -1
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
All notable user-facing changes to Assets are documented here. Open it any
|
|
4
4
|
time from the command menu (Cmd+K → "What's new") or from Settings.
|
|
5
5
|
|
|
6
|
-
Older updates live in [the changelog folder](./changelog/) and are included in the in-app "What's new" view.
|
|
7
|
-
|
|
8
6
|
## 2026-08-11
|
|
9
7
|
|
|
10
8
|
### Improved
|
|
@@ -42,3 +40,207 @@ Older updates live in [the changelog folder](./changelog/) and are included in t
|
|
|
42
40
|
### Improved
|
|
43
41
|
|
|
44
42
|
- The Agent Native logo stays visible when the sidebar is collapsed and toggles the sidebar when clicked.
|
|
43
|
+
|
|
44
|
+
## 2026-07-29
|
|
45
|
+
|
|
46
|
+
### Improved
|
|
47
|
+
|
|
48
|
+
- Chat history now closes smoothly and stays ready when you return to Ask.
|
|
49
|
+
- Chat history stays visible when you return to the workspace.
|
|
50
|
+
- Sidebar footers now keep Feedback, Search, and Collapse together without a separate language shortcut.
|
|
51
|
+
|
|
52
|
+
## 2026-07-25
|
|
53
|
+
|
|
54
|
+
### Improved
|
|
55
|
+
|
|
56
|
+
- App branding now uses the product name without the Agent-Native prefix.
|
|
57
|
+
- Settings navigation now keeps Manage agent as a dedicated linked destination at the bottom.
|
|
58
|
+
|
|
59
|
+
## 2026-07-24
|
|
60
|
+
|
|
61
|
+
### Improved
|
|
62
|
+
|
|
63
|
+
- Secondary controls and dashboard surfaces now use quieter borderless styling.
|
|
64
|
+
- Sidebar utility controls now follow a consistent footer order.
|
|
65
|
+
|
|
66
|
+
## 2026-07-23
|
|
67
|
+
|
|
68
|
+
### Improved
|
|
69
|
+
|
|
70
|
+
- Create and chat surfaces are better centered, with quieter chat history and a left-aligned New chat action.
|
|
71
|
+
- Drafts preview panel now fills the full width with a large preview area; save, add to references, and dismiss actions moved to the candidates header for all brand kits
|
|
72
|
+
- New chat is aligned consistently with the rest of the Assets sidebar.
|
|
73
|
+
|
|
74
|
+
### Fixed
|
|
75
|
+
|
|
76
|
+
- Assets image generation now recovers after a completed tool run.
|
|
77
|
+
|
|
78
|
+
## 2026-07-22
|
|
79
|
+
|
|
80
|
+
### Improved
|
|
81
|
+
|
|
82
|
+
- Manage agent navigation now uses the connected-nodes icon.
|
|
83
|
+
- Recent chats now expand from a compact five-item list with New chat anchored at the bottom.
|
|
84
|
+
|
|
85
|
+
### Fixed
|
|
86
|
+
|
|
87
|
+
- Full-page chat keeps the active conversation when moving to and from the sidebar.
|
|
88
|
+
|
|
89
|
+
## 2026-07-21
|
|
90
|
+
|
|
91
|
+
### Improved
|
|
92
|
+
|
|
93
|
+
- Unified asset preview: clicking an asset anywhere (create drafts, library, brand kits, generated candidates) now opens one side-panel preview with the image, a details panel, and next/previous navigation instead of a separate page
|
|
94
|
+
|
|
95
|
+
## 2026-07-17
|
|
96
|
+
|
|
97
|
+
### Added
|
|
98
|
+
|
|
99
|
+
- You can add exact, approved artifact versions to governed Creative Contexts for safe reuse.
|
|
100
|
+
|
|
101
|
+
### Improved
|
|
102
|
+
|
|
103
|
+
- Library now flags published assets with newer versions and lets you submit the update in place.
|
|
104
|
+
|
|
105
|
+
### Fixed
|
|
106
|
+
|
|
107
|
+
- The agent chat sidebar stays closed until you open it or start a chat handoff.
|
|
108
|
+
|
|
109
|
+
## 2026-07-16
|
|
110
|
+
|
|
111
|
+
### Added
|
|
112
|
+
|
|
113
|
+
- The Agent workspace now includes a creative-context Library while the existing Assets media Library stays unchanged.
|
|
114
|
+
|
|
115
|
+
## 2026-07-15
|
|
116
|
+
|
|
117
|
+
### Fixed
|
|
118
|
+
|
|
119
|
+
- Fixed top-level image picker selections returning to the composer
|
|
120
|
+
|
|
121
|
+
## 2026-07-13
|
|
122
|
+
|
|
123
|
+
### Added
|
|
124
|
+
|
|
125
|
+
- A full Agent page now brings context, files, connections, jobs, and external access together
|
|
126
|
+
|
|
127
|
+
### Improved
|
|
128
|
+
|
|
129
|
+
- Merged the Candidates panel into the Library as a Drafts tab that opens by default
|
|
130
|
+
|
|
131
|
+
### Fixed
|
|
132
|
+
|
|
133
|
+
- Assets keeps the right chat sidebar closed when the full-page chat is empty.
|
|
134
|
+
- Internal library links now support opening in a new tab.
|
|
135
|
+
|
|
136
|
+
## 2026-07-11
|
|
137
|
+
|
|
138
|
+
### Fixed
|
|
139
|
+
|
|
140
|
+
- Library and recent-draft loading failures now show a clear retry action instead of looking empty.
|
|
141
|
+
|
|
142
|
+
## 2026-07-09
|
|
143
|
+
|
|
144
|
+
### Added
|
|
145
|
+
|
|
146
|
+
- Import reference images into a brand kit directly from a URL - the agent can now ingest blog or web imagery as style, logo, or subject references.
|
|
147
|
+
- Presets now have a reference board: pin annotated photos (like your usual host) and mark per-event slots to fill when generating.
|
|
148
|
+
|
|
149
|
+
## 2026-07-08
|
|
150
|
+
|
|
151
|
+
### Improved
|
|
152
|
+
|
|
153
|
+
- Settings are cleaner and searchable, with a consistent navigation that jumps straight to any setting.
|
|
154
|
+
|
|
155
|
+
### Fixed
|
|
156
|
+
|
|
157
|
+
- Recent drafts keep comfortable side padding on the Create page.
|
|
158
|
+
|
|
159
|
+
## 2026-07-07
|
|
160
|
+
|
|
161
|
+
### Fixed
|
|
162
|
+
|
|
163
|
+
- Preset skeleton controls fit correctly on narrower edit pages.
|
|
164
|
+
|
|
165
|
+
## 2026-07-06
|
|
166
|
+
|
|
167
|
+
### Fixed
|
|
168
|
+
|
|
169
|
+
- Mobile layouts no longer stack a desktop header under the navigation bar.
|
|
170
|
+
|
|
171
|
+
## 2026-07-01
|
|
172
|
+
|
|
173
|
+
### Added
|
|
174
|
+
|
|
175
|
+
- Generation presets can now composite your brand's canonical logo onto every image made with them
|
|
176
|
+
|
|
177
|
+
### Improved
|
|
178
|
+
|
|
179
|
+
- Tagging a preset now briefs the agent on that preset's aesthetics and philosophy before it generates, for more on-brand results
|
|
180
|
+
|
|
181
|
+
## 2026-06-30
|
|
182
|
+
|
|
183
|
+
### Improved
|
|
184
|
+
|
|
185
|
+
- The Assets picker now supports a vertical embedded layout for sidebar workflows.
|
|
186
|
+
|
|
187
|
+
### Fixed
|
|
188
|
+
|
|
189
|
+
- Image generation no longer looks stuck while the provider is still creating and saving the asset.
|
|
190
|
+
- Tagging a @preset now reliably uses its aspect ratio and other saved settings instead of a guessed one
|
|
191
|
+
|
|
192
|
+
## 2026-06-29
|
|
193
|
+
|
|
194
|
+
### Improved
|
|
195
|
+
|
|
196
|
+
- Image generation can now render requested text and respect brand fonts
|
|
197
|
+
|
|
198
|
+
### Fixed
|
|
199
|
+
|
|
200
|
+
- Asset library and detail layouts now adapt cleanly when the agent sidebar narrows the app.
|
|
201
|
+
- Image generation requests have a longer hosted agent window, reducing timeouts for slow models and multi-image batches.
|
|
202
|
+
|
|
203
|
+
## 2026-06-28
|
|
204
|
+
|
|
205
|
+
### Improved
|
|
206
|
+
|
|
207
|
+
- Left sidebar collapse motion and footer controls now feel smoother and use less divider chrome.
|
|
208
|
+
|
|
209
|
+
## 2026-06-27
|
|
210
|
+
|
|
211
|
+
### Improved
|
|
212
|
+
|
|
213
|
+
- Improved mobile navigation chrome and sidebar drawer motion.
|
|
214
|
+
|
|
215
|
+
### Fixed
|
|
216
|
+
|
|
217
|
+
- Traditional Chinese copy now uses Taiwan terminology and clearer technical wording.
|
|
218
|
+
|
|
219
|
+
## 2026-06-25
|
|
220
|
+
|
|
221
|
+
### Fixed
|
|
222
|
+
|
|
223
|
+
- Create no longer shows agent settings in the main asset chat area after reconnecting AI.
|
|
224
|
+
|
|
225
|
+
## 2026-06-24
|
|
226
|
+
|
|
227
|
+
### Added
|
|
228
|
+
|
|
229
|
+
- Added a language picker and localized app chrome for supported languages.
|
|
230
|
+
|
|
231
|
+
### Improved
|
|
232
|
+
|
|
233
|
+
- Settings now link directly to Agent settings for model, API key, automation, and voice preferences.
|
|
234
|
+
|
|
235
|
+
## 2026-06-23
|
|
236
|
+
|
|
237
|
+
### Added
|
|
238
|
+
|
|
239
|
+
- Pick your image-generation model right from the chat model menu — it's shown alongside the chat model so it's clear which is which.
|
|
240
|
+
|
|
241
|
+
### Fixed
|
|
242
|
+
|
|
243
|
+
- Chat dates in the sidebar no longer wrap onto two lines.
|
|
244
|
+
- Clicking image, video, or refine on the start screen now drops a starter prompt into the composer instead of doing nothing.
|
|
245
|
+
|
|
246
|
+
For the full list of updates, see the [changelog folder](./changelog/).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineAction } from "@agent-native/core";
|
|
2
|
-
import {
|
|
2
|
+
import { writeAppStateForCurrentTab } from "@agent-native/core/application-state";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
|
|
5
5
|
export default defineAction({
|
|
@@ -43,7 +43,7 @@ export default defineAction({
|
|
|
43
43
|
if (!args.view && !args.path) {
|
|
44
44
|
throw new Error("view or path is required.");
|
|
45
45
|
}
|
|
46
|
-
await
|
|
46
|
+
await writeAppStateForCurrentTab("navigate", args);
|
|
47
47
|
return { navigating: true, ...args };
|
|
48
48
|
},
|
|
49
49
|
});
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { defineAction } from "@agent-native/core";
|
|
2
2
|
import type { ActionRunContext } from "@agent-native/core/action";
|
|
3
|
-
import {
|
|
4
|
-
deleteAppState,
|
|
5
|
-
readAppState,
|
|
6
|
-
writeAppState,
|
|
7
|
-
} from "@agent-native/core/application-state";
|
|
8
3
|
import { z } from "zod";
|
|
9
4
|
|
|
10
5
|
import { markAssetSaved } from "../server/handlers/assets.js";
|
|
@@ -34,7 +34,6 @@ import {
|
|
|
34
34
|
IconSettings,
|
|
35
35
|
IconTrash,
|
|
36
36
|
IconUpload,
|
|
37
|
-
IconVideo,
|
|
38
37
|
IconX,
|
|
39
38
|
} from "@tabler/icons-react";
|
|
40
39
|
import {
|
|
@@ -346,7 +345,7 @@ export function BrandKitDetailRoute({
|
|
|
346
345
|
const urlTab = libraryTabFromValue(searchParams.get("tab"));
|
|
347
346
|
const libraryId = explicitLibraryId ?? id!;
|
|
348
347
|
const { data } = useActionQuery("get-library", { id: libraryId }) as any;
|
|
349
|
-
|
|
348
|
+
|
|
350
349
|
const archiveLibrary = useActionMutation("archive-library");
|
|
351
350
|
const duplicateLibrary = useActionMutation("duplicate-library");
|
|
352
351
|
const updateAsset = useActionMutation("update-asset");
|
|
@@ -3483,265 +3482,6 @@ function AssetActionsMenu({
|
|
|
3483
3482
|
);
|
|
3484
3483
|
}
|
|
3485
3484
|
|
|
3486
|
-
function PendingUploadLaneTile({ upload }: { upload: PendingUpload }) {
|
|
3487
|
-
const t = useT();
|
|
3488
|
-
const isChecking = upload.status === "checking";
|
|
3489
|
-
return (
|
|
3490
|
-
<div className="w-36 shrink-0 overflow-hidden rounded-md border border-dashed border-border bg-background sm:w-39">
|
|
3491
|
-
<div className="flex aspect-4/3 items-center justify-center bg-muted/30">
|
|
3492
|
-
<div className="flex flex-col items-center gap-2 text-muted-foreground">
|
|
3493
|
-
<Spinner className="h-5 w-5" />
|
|
3494
|
-
<span className="text-xs font-medium">
|
|
3495
|
-
{isChecking ? t("library.checking") : t("library.uploading")}
|
|
3496
|
-
</span>
|
|
3497
|
-
</div>
|
|
3498
|
-
</div>
|
|
3499
|
-
<div className="p-2.5">
|
|
3500
|
-
<div className="flex items-center gap-2 truncate text-xs font-medium">
|
|
3501
|
-
{upload.mediaType === "video" ? (
|
|
3502
|
-
<IconVideo className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
|
|
3503
|
-
) : (
|
|
3504
|
-
<IconPhoto className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
|
|
3505
|
-
)}
|
|
3506
|
-
<span className="truncate">{upload.name}</span>
|
|
3507
|
-
</div>
|
|
3508
|
-
</div>
|
|
3509
|
-
</div>
|
|
3510
|
-
);
|
|
3511
|
-
}
|
|
3512
|
-
|
|
3513
|
-
function AssetLaneTile({
|
|
3514
|
-
asset,
|
|
3515
|
-
folders,
|
|
3516
|
-
selected,
|
|
3517
|
-
deleting,
|
|
3518
|
-
saving,
|
|
3519
|
-
promoting,
|
|
3520
|
-
onToggle,
|
|
3521
|
-
onDelete,
|
|
3522
|
-
updateAsset,
|
|
3523
|
-
onSave,
|
|
3524
|
-
onMoveToReferences,
|
|
3525
|
-
}: {
|
|
3526
|
-
asset: any;
|
|
3527
|
-
folders: any[];
|
|
3528
|
-
selected: boolean;
|
|
3529
|
-
deleting?: boolean;
|
|
3530
|
-
saving?: boolean;
|
|
3531
|
-
promoting?: boolean;
|
|
3532
|
-
onToggle: (checked: boolean) => void;
|
|
3533
|
-
onDelete: () => void;
|
|
3534
|
-
updateAsset: any;
|
|
3535
|
-
onSave?: () => void;
|
|
3536
|
-
onMoveToReferences?: () => void;
|
|
3537
|
-
}) {
|
|
3538
|
-
const t = useT();
|
|
3539
|
-
const [contextOpen, setContextOpen] = useState(false);
|
|
3540
|
-
const displayTitle = assetDisplayTitle(asset);
|
|
3541
|
-
const sourceText = assetLineageSourceText(asset);
|
|
3542
|
-
const canMoveToReferences = Boolean(onMoveToReferences);
|
|
3543
|
-
const hasPrimaryActions = Boolean(onSave || canMoveToReferences);
|
|
3544
|
-
const categoryLabel = assetCategoryLabel(asset);
|
|
3545
|
-
const busy = deleting || saving || promoting;
|
|
3546
|
-
|
|
3547
|
-
return (
|
|
3548
|
-
<div
|
|
3549
|
-
className={[
|
|
3550
|
-
"group relative w-36 shrink-0 overflow-hidden rounded-md border bg-background transition sm:w-39",
|
|
3551
|
-
selected
|
|
3552
|
-
? "border-primary ring-2 ring-primary/25"
|
|
3553
|
-
: "border-border/80 hover:border-foreground/20",
|
|
3554
|
-
deleting ? "opacity-60" : "",
|
|
3555
|
-
].join(" ")}
|
|
3556
|
-
aria-busy={busy}
|
|
3557
|
-
>
|
|
3558
|
-
<div className="absolute left-2 top-2 z-10">
|
|
3559
|
-
<Checkbox
|
|
3560
|
-
checked={selected}
|
|
3561
|
-
onCheckedChange={(checked) => onToggle(checked === true)}
|
|
3562
|
-
aria-label={t("library.selectAsset", { title: displayTitle })}
|
|
3563
|
-
className={[
|
|
3564
|
-
"border-2 border-foreground/40 bg-background/90 shadow-sm opacity-100 transition sm:opacity-0 sm:group-hover:opacity-100 sm:focus-visible:opacity-100",
|
|
3565
|
-
selected ? "sm:opacity-100" : "",
|
|
3566
|
-
].join(" ")}
|
|
3567
|
-
/>
|
|
3568
|
-
</div>
|
|
3569
|
-
<div className="absolute right-2 top-2 z-10">
|
|
3570
|
-
<DropdownMenu>
|
|
3571
|
-
<DropdownMenuTrigger asChild>
|
|
3572
|
-
<Button
|
|
3573
|
-
type="button"
|
|
3574
|
-
variant="secondary"
|
|
3575
|
-
size="icon"
|
|
3576
|
-
className="h-8 w-8 shadow-sm opacity-100 sm:opacity-0 sm:group-hover:opacity-100 sm:focus-visible:opacity-100 data-[state=open]:opacity-100"
|
|
3577
|
-
aria-label={t("library.assetActions")}
|
|
3578
|
-
disabled={busy}
|
|
3579
|
-
>
|
|
3580
|
-
<IconDotsVertical className="h-4 w-4" />
|
|
3581
|
-
</Button>
|
|
3582
|
-
</DropdownMenuTrigger>
|
|
3583
|
-
<DropdownMenuContent align="end">
|
|
3584
|
-
<DropdownMenuItem asChild>
|
|
3585
|
-
<Link to={`/asset/${asset.id}`}>
|
|
3586
|
-
<IconArrowUpRight className="mr-2 h-4 w-4 shrink-0" />
|
|
3587
|
-
{t("library.viewDetails")}
|
|
3588
|
-
</Link>
|
|
3589
|
-
</DropdownMenuItem>
|
|
3590
|
-
<DropdownMenuItem
|
|
3591
|
-
onSelect={(event) => {
|
|
3592
|
-
event.preventDefault();
|
|
3593
|
-
setContextOpen(true);
|
|
3594
|
-
}}
|
|
3595
|
-
>
|
|
3596
|
-
<IconLink className="mr-2 h-4 w-4 shrink-0" />
|
|
3597
|
-
Add to context
|
|
3598
|
-
{/* i18n-ignore assets template UI is raw-English pending template i18n pass */}
|
|
3599
|
-
</DropdownMenuItem>
|
|
3600
|
-
{canMoveToReferences ? (
|
|
3601
|
-
<DropdownMenuItem
|
|
3602
|
-
onSelect={(event) => {
|
|
3603
|
-
event.preventDefault();
|
|
3604
|
-
onMoveToReferences?.();
|
|
3605
|
-
}}
|
|
3606
|
-
>
|
|
3607
|
-
<IconPhotoPlus className="mr-2 h-4 w-4 shrink-0" />
|
|
3608
|
-
{t("library.addToReferences")}
|
|
3609
|
-
</DropdownMenuItem>
|
|
3610
|
-
) : null}
|
|
3611
|
-
<DropdownMenuSub>
|
|
3612
|
-
<DropdownMenuSubTrigger>
|
|
3613
|
-
<IconFolder className="mr-2 h-4 w-4 shrink-0" />
|
|
3614
|
-
{t("library.moveTo")}
|
|
3615
|
-
</DropdownMenuSubTrigger>
|
|
3616
|
-
<DropdownMenuSubContent>
|
|
3617
|
-
<DropdownMenuItem
|
|
3618
|
-
onSelect={() =>
|
|
3619
|
-
updateAsset.mutate({
|
|
3620
|
-
id: asset.id,
|
|
3621
|
-
folderId: null,
|
|
3622
|
-
})
|
|
3623
|
-
}
|
|
3624
|
-
>
|
|
3625
|
-
{t("library.unfiled")}
|
|
3626
|
-
</DropdownMenuItem>
|
|
3627
|
-
{folders.map((folder) => (
|
|
3628
|
-
<DropdownMenuItem
|
|
3629
|
-
key={folder.id}
|
|
3630
|
-
onSelect={() =>
|
|
3631
|
-
updateAsset.mutate({
|
|
3632
|
-
id: asset.id,
|
|
3633
|
-
folderId: folder.id,
|
|
3634
|
-
})
|
|
3635
|
-
}
|
|
3636
|
-
>
|
|
3637
|
-
{folder.title}
|
|
3638
|
-
</DropdownMenuItem>
|
|
3639
|
-
))}
|
|
3640
|
-
</DropdownMenuSubContent>
|
|
3641
|
-
</DropdownMenuSub>
|
|
3642
|
-
<DropdownMenuSeparator />
|
|
3643
|
-
<DropdownMenuItem
|
|
3644
|
-
className="text-destructive focus:bg-destructive/10 focus:text-destructive"
|
|
3645
|
-
onSelect={onDelete}
|
|
3646
|
-
>
|
|
3647
|
-
<IconTrash className="mr-2 h-4 w-4 shrink-0" />
|
|
3648
|
-
{t("assetDetail.delete")}
|
|
3649
|
-
</DropdownMenuItem>
|
|
3650
|
-
</DropdownMenuContent>
|
|
3651
|
-
</DropdownMenu>
|
|
3652
|
-
</div>
|
|
3653
|
-
<Link to={`/asset/${asset.id}`} className="block outline-none">
|
|
3654
|
-
<div className="relative aspect-4/3 bg-muted">
|
|
3655
|
-
<AssetPreview asset={asset} />
|
|
3656
|
-
<div className="pointer-events-none absolute inset-x-0 bottom-0 bg-linear-to-t from-background via-background/90 to-transparent px-2 pb-2 pt-8">
|
|
3657
|
-
<div className="flex items-center gap-1.5 truncate text-xs font-medium">
|
|
3658
|
-
{asset.mediaType === "video" ? (
|
|
3659
|
-
<IconVideo className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
|
|
3660
|
-
) : (
|
|
3661
|
-
<IconPhoto className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
|
|
3662
|
-
)}
|
|
3663
|
-
<span className="truncate">{displayTitle}</span>
|
|
3664
|
-
</div>
|
|
3665
|
-
<div className="mt-1 flex min-w-0 items-center gap-1 overflow-hidden text-[10px] font-medium text-muted-foreground">
|
|
3666
|
-
{sourceText ? (
|
|
3667
|
-
<span className="truncate">{sourceText}</span>
|
|
3668
|
-
) : (
|
|
3669
|
-
<>
|
|
3670
|
-
<span className="truncate">{asset.status}</span>
|
|
3671
|
-
{categoryLabel ? (
|
|
3672
|
-
<>
|
|
3673
|
-
<span className="shrink-0 text-muted-foreground/60">
|
|
3674
|
-
/
|
|
3675
|
-
</span>
|
|
3676
|
-
<span className="truncate">{categoryLabel}</span>
|
|
3677
|
-
</>
|
|
3678
|
-
) : null}
|
|
3679
|
-
</>
|
|
3680
|
-
)}
|
|
3681
|
-
</div>
|
|
3682
|
-
</div>
|
|
3683
|
-
</div>
|
|
3684
|
-
</Link>
|
|
3685
|
-
{hasPrimaryActions ? (
|
|
3686
|
-
<div className="space-y-2 border-t border-border/70 p-2">
|
|
3687
|
-
<div
|
|
3688
|
-
className={
|
|
3689
|
-
onSave && canMoveToReferences
|
|
3690
|
-
? "grid grid-cols-1 gap-2"
|
|
3691
|
-
: "grid grid-cols-2 gap-2"
|
|
3692
|
-
}
|
|
3693
|
-
>
|
|
3694
|
-
{onSave ? (
|
|
3695
|
-
<Button
|
|
3696
|
-
size="sm"
|
|
3697
|
-
className="h-8 px-2 text-xs"
|
|
3698
|
-
onClick={onSave}
|
|
3699
|
-
disabled={busy}
|
|
3700
|
-
>
|
|
3701
|
-
{saving ? (
|
|
3702
|
-
<Spinner className="h-3.5 w-3.5" />
|
|
3703
|
-
) : (
|
|
3704
|
-
t("library.save")
|
|
3705
|
-
)}
|
|
3706
|
-
</Button>
|
|
3707
|
-
) : null}
|
|
3708
|
-
{canMoveToReferences ? (
|
|
3709
|
-
<Button
|
|
3710
|
-
variant="outline"
|
|
3711
|
-
size="sm"
|
|
3712
|
-
className={
|
|
3713
|
-
onSave ? "h-8 px-2 text-xs" : "col-span-2 h-8 px-2 text-xs"
|
|
3714
|
-
}
|
|
3715
|
-
onClick={onMoveToReferences}
|
|
3716
|
-
disabled={busy}
|
|
3717
|
-
title={t("library.addToReferences")}
|
|
3718
|
-
>
|
|
3719
|
-
{promoting ? (
|
|
3720
|
-
<Spinner className="h-3.5 w-3.5" />
|
|
3721
|
-
) : (
|
|
3722
|
-
t("library.addToReferences")
|
|
3723
|
-
)}
|
|
3724
|
-
</Button>
|
|
3725
|
-
) : null}
|
|
3726
|
-
</div>
|
|
3727
|
-
</div>
|
|
3728
|
-
) : null}
|
|
3729
|
-
<CreativeContextShareSheet
|
|
3730
|
-
open={contextOpen}
|
|
3731
|
-
onOpenChange={setContextOpen}
|
|
3732
|
-
resource={{
|
|
3733
|
-
appId: "assets",
|
|
3734
|
-
resourceType: "asset",
|
|
3735
|
-
resourceId: asset.id,
|
|
3736
|
-
title: displayTitle,
|
|
3737
|
-
updatedAt: asset.updatedAt,
|
|
3738
|
-
preview: { kind: "document", label: "Asset" },
|
|
3739
|
-
}}
|
|
3740
|
-
/>
|
|
3741
|
-
</div>
|
|
3742
|
-
);
|
|
3743
|
-
}
|
|
3744
|
-
|
|
3745
3485
|
export function LiveCandidatesStage({
|
|
3746
3486
|
slots,
|
|
3747
3487
|
draftAssets,
|
|
@@ -3784,7 +3524,7 @@ export function LiveCandidatesStage({
|
|
|
3784
3524
|
asset?: any;
|
|
3785
3525
|
} | null>(null);
|
|
3786
3526
|
const dismissing = dismissSlot.isPending || deleteAsset.isPending;
|
|
3787
|
-
|
|
3527
|
+
|
|
3788
3528
|
const [activeItemId, setActiveItemId] = useState<string | null>(null);
|
|
3789
3529
|
|
|
3790
3530
|
async function handleDismissCandidate() {
|
|
@@ -1155,7 +1155,7 @@ function AllAssetsBrowser({
|
|
|
1155
1155
|
foldersByLibraryId?: Record<string, any[]>;
|
|
1156
1156
|
}) {
|
|
1157
1157
|
const t = useT();
|
|
1158
|
-
|
|
1158
|
+
|
|
1159
1159
|
const queryClient = useQueryClient();
|
|
1160
1160
|
const [searchParams, setSearchParams] = useSearchParams();
|
|
1161
1161
|
const searchParamsKey = searchParams.toString();
|
|
@@ -38,7 +38,11 @@ connection exists:
|
|
|
38
38
|
register a `kind: "oauth"` entry so the shared UI renders Connect and the
|
|
39
39
|
runtime owns status, refresh, and reauthorization.
|
|
40
40
|
- **Deploy- or app-level configuration** - use deployment/runtime
|
|
41
|
-
configuration, not a per-user secret row.
|
|
41
|
+
configuration, not a per-user secret row. For a non-secret public setting
|
|
42
|
+
already represented by `AgentNativeConfig`, put the default in
|
|
43
|
+
`agent-native.config.ts` and use its `AGENT_NATIVE_CONFIG_<PATH>` alias only
|
|
44
|
+
for a deployment override. Never put a credential or provider key in that
|
|
45
|
+
public namespace.
|
|
42
46
|
- **Account, customer, manager, or other non-secret identifier** - store it as
|
|
43
47
|
scoped connection metadata or app data, not as a masked secret field.
|
|
44
48
|
|
|
@@ -55,7 +55,10 @@ Preview before `--apply`, commit `agent-native.ejections.json`, and never edit
|
|
|
55
55
|
ZIPs, screenshots, thumbnails, session replay chunks) in configured file/blob
|
|
56
56
|
storage and persist only URLs, ids, or handles.
|
|
57
57
|
- Store shared runtime configuration in the workspace root `.env`; use
|
|
58
|
-
`apps/<app>/.env` only for app-specific overrides.
|
|
58
|
+
`apps/<app>/.env` only for app-specific overrides. For public app behavior,
|
|
59
|
+
prefer the default in `agent-native.config.ts` and use the deterministic
|
|
60
|
+
`AGENT_NATIVE_CONFIG_<UPPER_SNAKE_PATH>` alias only when a non-secret value
|
|
61
|
+
needs a deployment override. Never hardcode API keys,
|
|
59
62
|
tokens, webhook URLs, signing secrets, private Builder/internal data, customer
|
|
60
63
|
data, or credential-looking literals in source, docs, prompts, fixtures,
|
|
61
64
|
application state, action responses, or generated app content. Use
|