@agent-native/core-corpus 0.199.0-nightly-20261001153605 → 0.199.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/monitoring/SKILL.md +3 -1
- package/corpus/templates/analytics/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/analytics/CHANGELOG.md +7 -0
- package/corpus/templates/analytics/actions/match-error-issues.ts +10 -1
- package/corpus/templates/analytics/app/pages/monitoring/errors/IssueDetail.tsx +18 -2
- package/corpus/templates/analytics/app/pages/monitoring/errors/failure-thread-url.ts +15 -0
- package/corpus/templates/analytics/app/pages/monitoring/errors/i18n.ts +1 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +5 -1
- package/corpus/templates/analytics/changelog/2026-10-01-error-issues-in-monitoring-link-straight-to-the-chat-thread-.md +6 -0
- package/corpus/templates/analytics/server/lib/error-capture.ts +357 -47
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +4 -1
- package/corpus/templates/analytics/server/lib/read-only-sql.ts +13 -7
- package/corpus/templates/assets/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/assets/CHANGELOG.md +6 -0
- package/corpus/templates/assets/actions/get-generation-run.ts +11 -3
- package/corpus/templates/assets/actions/refresh-generation-run.ts +5 -2
- package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +8 -4
- package/corpus/templates/assets/app/lib/run-refresh-retry.ts +12 -0
- package/corpus/templates/assets/changelog/2026-10-01-a-generation-that-was-deleted-is-no-longer-checked-over-and-.md +6 -0
- package/corpus/templates/brain/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/brain/CHANGELOG.md +6 -0
- package/corpus/templates/brain/app/root.tsx +8 -1
- package/corpus/templates/calendar/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/calendar/server/plugins/event-rules.ts +30 -8
- package/corpus/templates/chat/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/chat/package.json +1 -0
- package/corpus/templates/chat/server/plugins/otel.ts +6 -0
- package/corpus/templates/clips/CHANGELOG.md +10 -0
- package/corpus/templates/clips/actions/lib/direct-video.ts +9 -3
- package/corpus/templates/clips/app/components/library/library-grid.tsx +4 -2
- package/corpus/templates/clips/app/routes/_app.dictate.tsx +19 -1
- package/corpus/templates/clips/app/routes/_app.r.$recordingId.tsx +1 -1
- package/corpus/templates/clips/changelog/2026-10-01-deleted-dictations-disappear-from-your-history-right-away-in.md +6 -0
- package/corpus/templates/clips/changelog/2026-10-01-dictation-shortcuts-stay-hidden-when-voice-dictation-is-disa.md +6 -0
- package/corpus/templates/clips/changelog/2026-10-01-opening-a-recording-link-no-longer-flashes-a-recording-not-f.md +6 -0
- package/corpus/templates/clips/changelog/2026-10-01-the-screenshots-view-labels-its-list-screenshots-instead-of-.md +6 -0
- package/corpus/templates/clips/desktop/src/app.tsx +1 -1
- package/corpus/templates/clips/server/jobs/thumbnail-sweeper.ts +47 -3
- package/corpus/templates/clips/server/lib/ensure-recording-thumbnail.ts +26 -40
- package/corpus/templates/clips/server/lib/recording-leases.ts +60 -0
- package/corpus/templates/content/.agents/skills/document-editing/references/databases.md +7 -2
- package/corpus/templates/content/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/content/CHANGELOG.md +19 -0
- package/corpus/templates/content/actions/_database-block-actions.ts +1 -16
- package/corpus/templates/content/actions/_database-row-mutation.ts +883 -62
- package/corpus/templates/content/actions/patch-database-items.ts +85 -0
- package/corpus/templates/content/actions/update-database-item.ts +1 -1
- package/corpus/templates/content/actions/update-database-items.ts +1 -1
- package/corpus/templates/content/agent-native.app-skill.json +16 -16
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +9 -1
- package/corpus/templates/content/app/hooks/content-action-refresh.ts +2 -0
- package/corpus/templates/content/changelog/2026-09-29-connected-agents-can-give-up-to-250-collection-rows-differen.md +6 -0
- package/corpus/templates/content/changelog/2026-10-01-the-editor-no-longer-shifts-focus-to-another-document-when-y.md +6 -0
- package/corpus/templates/content/parity/eval-scenarios.ts +18 -0
- package/corpus/templates/content/parity/matrix.md +40 -40
- package/corpus/templates/content/parity/matrix.ts +6 -1
- package/corpus/templates/content/parity/scenario-to-eval.ts +1 -0
- package/corpus/templates/content/server/lib/chatgpt-directory-tools.ts +6 -1
- package/corpus/templates/content/shared/api.ts +28 -0
- package/corpus/templates/crm/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/design/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +65 -21
- package/corpus/templates/design/CHANGELOG.md +15 -0
- package/corpus/templates/design/actions/apply-component-prop-edit.ts +3 -2
- package/corpus/templates/design/actions/connect-builder-app.ts +2 -2
- package/corpus/templates/design/actions/create-component.ts +3 -2
- package/corpus/templates/design/actions/create-design-branch.ts +3 -2
- package/corpus/templates/design/actions/deploy-design-preview.ts +3 -2
- package/corpus/templates/design/actions/detach-component-instance.ts +3 -2
- package/corpus/templates/design/actions/get-component-details.ts +3 -2
- package/corpus/templates/design/actions/get-design-branch-diff.ts +3 -2
- package/corpus/templates/design/actions/get-design-surface-index.ts +2 -2
- package/corpus/templates/design/actions/get-design-template.ts +3 -2
- package/corpus/templates/design/actions/get-visual-edit-pending.ts +4 -0
- package/corpus/templates/design/actions/go-to-main-component.ts +3 -2
- package/corpus/templates/design/actions/import-design-project.ts +2 -2
- package/corpus/templates/design/actions/index-design-tokens.ts +2 -2
- package/corpus/templates/design/actions/list-design-components.ts +3 -2
- package/corpus/templates/design/actions/list-design-source-capabilities.ts +2 -2
- package/corpus/templates/design/actions/list-files.ts +2 -2
- package/corpus/templates/design/actions/migrate-inline-design-to-app.ts +2 -2
- package/corpus/templates/design/actions/open-component-source.ts +3 -2
- package/corpus/templates/design/actions/preview-component-prop-edit.ts +3 -2
- package/corpus/templates/design/actions/preview-design-token-edit.ts +2 -2
- package/corpus/templates/design/actions/rename-component.ts +3 -2
- package/corpus/templates/design/actions/save-design-as-template.ts +5 -2
- package/corpus/templates/design/actions/swap-component-instance.ts +3 -2
- package/corpus/templates/design/agent-native.app-skill.json +14 -14
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +94 -36
- package/corpus/templates/design/app/components/layout/Header.tsx +29 -24
- package/corpus/templates/design/app/components/layout/Layout.tsx +6 -4
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +21 -5
- package/corpus/templates/design/app/global.css +1 -30
- package/corpus/templates/design/app/pages/DesignEditor.tsx +9 -0
- package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +9 -1
- package/corpus/templates/design/app/root.tsx +3 -0
- package/corpus/templates/design/changelog/2026-10-01-acknowledged-visual-edits-leave-the-pending-canvas.md +6 -0
- package/corpus/templates/design/changelog/2026-10-01-cmd-ctrl-k-opens-the-command-menu-again-while-the-prompt-box.md +6 -0
- package/corpus/templates/design/changelog/2026-10-01-dragging-an-absolute-layer-out-of-a-nested-frame-keeps-its-s.md +6 -0
- package/corpus/templates/design/changelog/2026-10-01-home-toolbar-and-credit-meter.md +6 -0
- package/corpus/templates/design/changelog/2026-10-01-show-one-home-toolbar.md +6 -0
- package/corpus/templates/design/server/lib/localhost-connection.ts +5 -1
- package/corpus/templates/dispatch/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/factory/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/forms/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/mail/.agents/skills/inbox-reads-and-triage/SKILL.md +11 -0
- package/corpus/templates/mail/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/mail/CHANGELOG.md +8 -0
- package/corpus/templates/mail/actions/get-email.ts +2 -0
- package/corpus/templates/mail/actions/get-thread.ts +2 -0
- package/corpus/templates/mail/actions/list-emails.ts +9 -10
- package/corpus/templates/mail/actions/list-inbox-threads.ts +16 -1
- package/corpus/templates/mail/actions/manage-gmail-filters.ts +2 -0
- package/corpus/templates/mail/actions/search-emails.ts +5 -5
- package/corpus/templates/mail/app/components/email/EmailList.tsx +18 -1
- package/corpus/templates/mail/app/components/email/GmailCooldownNotice.tsx +56 -0
- package/corpus/templates/mail/app/components/settings/GmailFiltersSection.tsx +4 -1
- package/corpus/templates/mail/app/hooks/use-emails.ts +49 -7
- package/corpus/templates/mail/app/hooks/use-gmail-filters.ts +12 -0
- package/corpus/templates/mail/app/pages/InboxPage.tsx +7 -0
- package/corpus/templates/mail/changelog/2026-10-01-stop-gmail-cooldown-retries.md +6 -0
- package/corpus/templates/mail/changelog/2026-10-01-when-gmail-rate-limits-mail-keeps-showing-your-saved-inbox-an.md +6 -0
- package/corpus/templates/mail/server/db/schema.ts +15 -0
- package/corpus/templates/mail/server/handlers/emails.ts +133 -14
- package/corpus/templates/mail/server/lib/cached-inbox-reads.ts +100 -0
- package/corpus/templates/mail/server/lib/email-state.ts +1 -1
- package/corpus/templates/mail/server/lib/gmail-quota.ts +191 -25
- package/corpus/templates/mail/server/lib/google-api.ts +11 -3
- package/corpus/templates/mail/server/lib/google-auth.ts +36 -15
- package/corpus/templates/mail/server/lib/inbox-store.ts +108 -1
- package/corpus/templates/mail/server/lib/inbox-sync.ts +58 -5
- package/corpus/templates/mail/server/plugins/db.ts +13 -0
- package/corpus/templates/mail/server/plugins/mail-jobs.ts +1 -0
- package/corpus/templates/mail/shared/archive-errors.ts +2 -1
- package/corpus/templates/mail/shared/gmail-freshness.ts +116 -0
- package/corpus/templates/mail/shared/inbox-threads.ts +6 -0
- package/corpus/templates/plan/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/plan/actions/get-local-plan-folder.ts +3 -2
- package/corpus/templates/plan/actions/promote-local-plan-folder.ts +3 -2
- package/corpus/templates/plan/actions/update-local-plan-comments.ts +5 -4
- package/corpus/templates/plan/actions/update-local-plan-folder.ts +5 -3
- package/corpus/templates/plan/actions/update-visual-plan.ts +29 -11
- package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +4 -1
- package/corpus/templates/slides/.agents/skills/storing-data/SKILL.md +2 -0
- package/corpus/templates/slides/CHANGELOG.md +22 -0
- package/corpus/templates/slides/actions/_uploaded-files.ts +66 -43
- package/corpus/templates/slides/actions/add-slide.ts +2 -1
- package/corpus/templates/slides/actions/generate-slides-ai.ts +1 -1
- package/corpus/templates/slides/actions/import-docx.ts +2 -2
- package/corpus/templates/slides/actions/import-file.ts +2 -2
- package/corpus/templates/slides/actions/import-google-doc.ts +17 -6
- package/corpus/templates/slides/actions/import-google-slides-reference.ts +18 -6
- package/corpus/templates/slides/actions/import-pptx.ts +2 -2
- package/corpus/templates/slides/agent-native.app-skill.json +16 -16
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +31 -3
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +4 -0
- package/corpus/templates/slides/app/components/layout/Layout.tsx +62 -40
- package/corpus/templates/slides/app/global.css +8 -0
- package/corpus/templates/slides/app/lib/image-drop-to-agent.ts +11 -0
- package/corpus/templates/slides/app/lib/prompt-file-uploads.ts +46 -2
- package/corpus/templates/slides/app/lib/upload-response.ts +60 -0
- package/corpus/templates/slides/app/pages/Index.tsx +39 -7
- package/corpus/templates/slides/changelog/2026-09-30-the-agent-no-longer-adds-decorative-circles-dots-or-rings-to.md +6 -0
- package/corpus/templates/slides/changelog/2026-10-01-importing-a-pdf-or-other-file-from-chat-no-longer-fails-with.md +6 -0
- package/corpus/templates/slides/changelog/2026-10-01-shift-clicking-images-selects-them-together-on-a-slide.md +6 -0
- package/corpus/templates/slides/changelog/2026-10-01-slides-keeps-sidebar-navigation-beside-the-single-home-toolb.md +6 -0
- package/corpus/templates/slides/server/handlers/uploads-chunked.ts +14 -2
- package/corpus/templates/slides/server/handlers/uploads.ts +63 -50
- package/corpus/templates/slides/server/lib/chat-attachments.ts +16 -6
- package/corpus/templates/slides/server/lib/deck-templates/b-lesson.ts +0 -2
- package/corpus/templates/slides/server/lib/uploaded-reference-storage.ts +39 -132
- package/corpus/templates/slides/server/plugins/agent-chat.ts +2 -1
- package/corpus/templates/tasks/.agents/skills/storing-data/SKILL.md +2 -0
- package/package.json +1 -1
package/corpus/README.md
CHANGED
|
@@ -77,7 +77,9 @@ selection to the `monitoring` application-state key.
|
|
|
77
77
|
A recording's devtools Console error lines link to the grouped issue at
|
|
78
78
|
`/monitoring?view=errors&issue=<id>`, resolved by `match-error-issues` (exact
|
|
79
79
|
fingerprint match, no heuristics); issues link back to the originating
|
|
80
|
-
recording at `/sessions/<recordingId>`.
|
|
80
|
+
recording at `/sessions/<recordingId>`. The fingerprint includes the app, so
|
|
81
|
+
`match-error-issues` takes the recording's `app` and only matches issues filed
|
|
82
|
+
under it.
|
|
81
83
|
|
|
82
84
|
## Related Skills
|
|
83
85
|
|
|
@@ -17,6 +17,8 @@ All application data lives in **SQL** (local PGlite, hosted Postgres in producti
|
|
|
17
17
|
|
|
18
18
|
Large binary or file-like payloads (images, video/audio, PDFs, ZIPs, screenshots, session replay chunks, thumbnails, generated assets, `data:` URLs, and base64 file bodies) must go through configured file/blob storage such as `uploadFile()` or `putPrivateBlob()`. Persist only the returned URL, asset id, or opaque blob handle in SQL. If storage is unavailable in hosted or persistent-database mode, fail closed with setup guidance instead of falling back to base64 in `application_state`, `settings`, `resources`, or app tables.
|
|
19
19
|
|
|
20
|
+
**Uploaded files an action opens later** (chat attachments, import controls, chunked commits) are one core `AttachmentRef`: mint with `mintAttachmentRef`, open with `resolveAttachment` and `unwrapAttachment` from `@agent-native/core/private-blob`. Never write a template descriptor, never branch on error text, and never truncate a ref (`ATTACHMENT_REF_MAX_CHARS` is the floor for any prompt or field that carries one). Each failure is typed: `notFound`, `forbiddenScope`, `expired` and `malformed` are definitive and stop the turn; only `storageUnavailable` is retryable, and the same ref works once storage is back, so never ask the user to attach the file again for it.
|
|
21
|
+
|
|
20
22
|
**Local File Mode exception:** some artifact apps (Content, Plans, Slides, Dashboards, Designs, etc.) can intentionally use repo files as the source of truth for the artifact itself. This must be explicit via `agent-native.json`, `AGENT_NATIVE_MODE=local-files`, or an app-owned local-file action helper. In that mode, the UI and agent still go through app actions, but those actions read/write scoped files through `@agent-native/core/local-artifacts` instead of SQL rows. App state, auth, settings, credentials, collaboration metadata, and hosted database mode remain SQL. File-to-database or file-to-provider synchronization is an explicit sync step, not an implicit side effect of editing.
|
|
21
23
|
|
|
22
24
|
When you add a data model, a list, or a read path, also follow the `performance` skill: project only the columns a list renders, index the columns hot queries filter/sort on, and avoid query waterfalls — so apps stay fast as data grows.
|
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable user-facing changes to Agent-Native Analytics are documented here. Open it any
|
|
4
4
|
time from the command menu (Cmd+K → "What's new") or from Settings.
|
|
5
5
|
|
|
6
|
+
## 2026-10-01
|
|
7
|
+
|
|
8
|
+
### Improved
|
|
9
|
+
|
|
10
|
+
- Error issues in Monitoring link straight to the chat thread that failed, and one underlying error now stays a single issue instead of splitting after each deploy
|
|
11
|
+
- The observability settings tab is now labeled Observability.
|
|
12
|
+
|
|
6
13
|
## 2026-09-30
|
|
7
14
|
|
|
8
15
|
### Improved
|
|
@@ -42,11 +42,20 @@ export default defineAction({
|
|
|
42
42
|
)
|
|
43
43
|
.max(100)
|
|
44
44
|
.describe("Session console error lines to resolve to issues."),
|
|
45
|
+
app: z
|
|
46
|
+
.string()
|
|
47
|
+
.optional()
|
|
48
|
+
.describe(
|
|
49
|
+
"The recording's app. Issues are filed per app, so lines only match issues filed under it.",
|
|
50
|
+
),
|
|
45
51
|
}),
|
|
46
52
|
http: { method: "POST" },
|
|
47
53
|
readOnly: true,
|
|
48
54
|
grounding: true,
|
|
49
55
|
run: async (args) => {
|
|
50
|
-
return matchErrorIssuesBySignatures(
|
|
56
|
+
return matchErrorIssuesBySignatures(
|
|
57
|
+
resolveScope(),
|
|
58
|
+
args.signatures.map((signature) => ({ ...signature, app: args.app })),
|
|
59
|
+
);
|
|
51
60
|
},
|
|
52
61
|
});
|
|
@@ -13,6 +13,7 @@ import { Card, CardContent } from "@/components/ui/card";
|
|
|
13
13
|
import { Skeleton } from "@/components/ui/skeleton";
|
|
14
14
|
import { cn } from "@/lib/utils";
|
|
15
15
|
|
|
16
|
+
import { failureThreadUrl } from "./failure-thread-url";
|
|
16
17
|
import { fmt, useErrorsT } from "./i18n";
|
|
17
18
|
import type {
|
|
18
19
|
ErrorBreadcrumb,
|
|
@@ -195,7 +196,8 @@ function JsonBlock({ value }: { value: Record<string, unknown> }) {
|
|
|
195
196
|
|
|
196
197
|
function LatestOccurrenceCard({ event }: { event: ErrorEventDetail }) {
|
|
197
198
|
const t = useErrorsT();
|
|
198
|
-
const
|
|
199
|
+
const threadUrl = failureThreadUrl(event.extra);
|
|
200
|
+
const details: Array<{ label: string; value: string; href?: string }> = [
|
|
199
201
|
{
|
|
200
202
|
label: t.occurrenceTime,
|
|
201
203
|
value: formatDateTime(event.occurredAt),
|
|
@@ -206,6 +208,9 @@ function LatestOccurrenceCard({ event }: { event: ErrorEventDetail }) {
|
|
|
206
208
|
},
|
|
207
209
|
];
|
|
208
210
|
if (event.url) details.push({ label: t.url, value: event.url });
|
|
211
|
+
if (threadUrl) {
|
|
212
|
+
details.push({ label: t.chatThread, value: threadUrl, href: threadUrl });
|
|
213
|
+
}
|
|
209
214
|
|
|
210
215
|
return (
|
|
211
216
|
<Card>
|
|
@@ -228,7 +233,18 @@ function LatestOccurrenceCard({ event }: { event: ErrorEventDetail }) {
|
|
|
228
233
|
{item.label}
|
|
229
234
|
</div>
|
|
230
235
|
<div className="mt-0.5 truncate text-sm text-foreground">
|
|
231
|
-
{item.
|
|
236
|
+
{item.href ? (
|
|
237
|
+
<a
|
|
238
|
+
href={item.href}
|
|
239
|
+
target="_blank"
|
|
240
|
+
rel="noreferrer noopener"
|
|
241
|
+
className="underline underline-offset-2"
|
|
242
|
+
>
|
|
243
|
+
{item.value}
|
|
244
|
+
</a>
|
|
245
|
+
) : (
|
|
246
|
+
item.value
|
|
247
|
+
)}
|
|
232
248
|
</div>
|
|
233
249
|
</div>
|
|
234
250
|
))}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The chat thread a failure happened in, when its capture named one
|
|
3
|
+
* (`extra.failureContext.threadUrl`). Events are client-submitted, so only an
|
|
4
|
+
* http(s) address is returned; the caller shows the address itself as the link
|
|
5
|
+
* text so a planted one cannot hide where it points.
|
|
6
|
+
*/
|
|
7
|
+
export function failureThreadUrl(
|
|
8
|
+
extra: Record<string, unknown> | undefined,
|
|
9
|
+
): string | undefined {
|
|
10
|
+
const failure = extra?.failureContext as { threadUrl?: unknown } | undefined;
|
|
11
|
+
const url = failure?.threadUrl;
|
|
12
|
+
if (typeof url !== "string" || !URL.canParse(url)) return undefined;
|
|
13
|
+
const { protocol } = new URL(url);
|
|
14
|
+
return protocol === "https:" || protocol === "http:" ? url : undefined;
|
|
15
|
+
}
|
|
@@ -566,12 +566,16 @@ function ReplayPlayer({
|
|
|
566
566
|
[errorSignatures],
|
|
567
567
|
);
|
|
568
568
|
const recordingId = response.recording.id;
|
|
569
|
+
const recordingApp = response.recording.app;
|
|
569
570
|
const issueMatchQuery = useQuery({
|
|
570
571
|
queryKey: ["match-error-issues", recordingId, errorSignaturesKey],
|
|
571
572
|
queryFn: () =>
|
|
572
573
|
callAction<Record<string, SessionIssueMatch>>(
|
|
573
574
|
"match-error-issues",
|
|
574
|
-
{
|
|
575
|
+
{
|
|
576
|
+
signatures: errorSignatures,
|
|
577
|
+
...(recordingApp ? { app: recordingApp } : {}),
|
|
578
|
+
},
|
|
575
579
|
{ method: "POST" },
|
|
576
580
|
),
|
|
577
581
|
enabled: devToolsOpen && errorSignatures.length > 0,
|