@agent-native/core 0.114.6 → 0.114.8
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 +2 -2
- package/corpus/core/CHANGELOG.md +15 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/cli/mcp-config-writers.ts +6 -4
- package/corpus/core/src/cli/mcp.ts +124 -0
- package/corpus/core/src/cli/skills-content/help.ts +4 -3
- package/corpus/core/src/cli/skills-content/index.ts +1 -0
- package/corpus/core/src/cli/skills-content/rewind-skill.ts +52 -0
- package/corpus/core/src/cli/skills.ts +115 -13
- package/corpus/core/src/mcp/screen-memory-stdio.ts +1360 -104
- package/corpus/core/src/mcp-client/index.ts +9 -0
- package/corpus/core/src/mcp-client/screen-memory-local.ts +847 -13
- package/corpus/core/src/server/agent-chat-plugin.ts +16 -9
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +19 -7
- package/corpus/templates/analytics/app/hooks/use-chart-tooltip-portal.ts +60 -0
- package/corpus/templates/analytics/app/routes/chart.tsx +1 -1
- package/corpus/templates/analytics/changelog/2026-07-20-dashboard-requests-no-longer-stall-without-progress.md +6 -0
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +6 -0
- package/corpus/templates/clips/actions/apply-rewind-extension.ts +195 -0
- package/corpus/templates/clips/actions/delete-agent-recording-if-unpromoted.ts +64 -0
- package/corpus/templates/clips/actions/get-rewind-extension-request.ts +22 -0
- package/corpus/templates/clips/actions/get-screen-memory-status.ts +18 -2
- package/corpus/templates/clips/actions/list-rewind-extension-requests.ts +52 -0
- package/corpus/templates/clips/actions/make-recording-private-for-rewind.ts +55 -0
- package/corpus/templates/clips/actions/query-screen-memory-context.ts +4 -4
- package/corpus/templates/clips/actions/request-rewind-extension.ts +81 -0
- package/corpus/templates/clips/actions/update-rewind-extension-request.ts +47 -0
- package/corpus/templates/clips/app/components/editor/editor-layout.tsx +25 -0
- package/corpus/templates/clips/app/components/editor/editor-toolbar.tsx +36 -0
- package/corpus/templates/clips/app/components/editor/rewind-extension-dialog.tsx +338 -0
- package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +1 -16
- package/corpus/templates/clips/app/components/editor/timeline.tsx +26 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +18 -0
- package/corpus/templates/clips/app/lib/ffmpeg-export.ts +19 -12
- package/corpus/templates/clips/app/lib/rewind-visibility.ts +31 -0
- package/corpus/templates/clips/app/lib/timestamp-mapping.ts +7 -0
- package/corpus/templates/clips/app/lib/upload-file-client.ts +17 -0
- package/corpus/templates/clips/changelog/2026-07-14-rewind-keeps-recent-screen-context-local-and-turns-it-into-clips.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-active-clips-keep-rewind-stable-and-settings-clear.md +12 -0
- package/corpus/templates/clips/changelog/2026-07-17-clicking-the-clips-icon-during-a-recording-now-opens-the-app.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-default-mic-now-uses-the-mac-default-and-transcription-shares-one-capture.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-full-screen-clips-finalize-even-when-screencapturekit-stop-hangs.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-normal-full-screen-clips-no-longer-stop-immediately-after-th.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-rewind-can-hand-one-bounded-private-clip-to-your-agent.md +12 -0
- package/corpus/templates/clips/changelog/2026-07-17-rewind-home-can-copy-a-local-agent-prompt.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-rewind-now-has-a-calm-home-status-focused-first-run-consent-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-rewind-settings-are-smaller-clearer-and-agent-first.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-the-full-clips-interface-stays-available-while-recording.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-18-rewind-organizes-recent-work-into-local-searchable-chapters.md +8 -0
- package/corpus/templates/clips/changelog/2026-07-18-searchable-rewind-chapters.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-19-rewind-backed-recordings-now-start-immediately-after-the-cou.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-20-rewind-can-set-up-your-local-agent-once-so-future-requests-w.md +6 -0
- package/corpus/templates/clips/desktop/package.json +1 -0
- package/corpus/templates/clips/desktop/scripts/sign-macos-local.ts +12 -1
- package/corpus/templates/clips/desktop/src/app.tsx +2498 -239
- package/corpus/templates/clips/desktop/src/components/ReadinessPanel.tsx +21 -1
- package/corpus/templates/clips/desktop/src/components/Switch.tsx +3 -0
- package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +156 -24
- package/corpus/templates/clips/desktop/src/lib/native-recording-warm.ts +6 -7
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +1763 -1160
- package/corpus/templates/clips/desktop/src/lib/rewind-agent-prompt.ts +9 -0
- package/corpus/templates/clips/desktop/src/lib/rewind-recording-start.ts +20 -0
- package/corpus/templates/clips/desktop/src/main.tsx +3 -0
- package/corpus/templates/clips/desktop/src/overlays/countdown.tsx +14 -14
- package/corpus/templates/clips/desktop/src/overlays/onboarding.tsx +4 -4
- package/corpus/templates/clips/desktop/src/overlays/preparing.tsx +13 -0
- package/corpus/templates/clips/desktop/src/overlays/toolbar.tsx +27 -2
- package/corpus/templates/clips/desktop/src/shared/config.ts +16 -0
- package/corpus/templates/clips/desktop/src/styles.css +956 -134
- package/corpus/templates/clips/desktop/src-tauri/Cargo.toml +5 -0
- package/corpus/templates/clips/desktop/src-tauri/build.rs +69 -1
- package/corpus/templates/clips/desktop/src-tauri/src/accessibility.rs +386 -12
- package/corpus/templates/clips/desktop/src-tauri/src/capture_audio_bus.rs +382 -0
- package/corpus/templates/clips/desktop/src-tauri/src/capture_graph.rs +777 -0
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +249 -22
- package/corpus/templates/clips/desktop/src-tauri/src/config.rs +148 -1
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +58 -4
- package/corpus/templates/clips/desktop/src-tauri/src/logfile.rs +13 -1
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen/custom_capture.rs +1505 -51
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen/live_upload.rs +124 -0
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +1006 -95
- package/corpus/templates/clips/desktop/src-tauri/src/rewind_capture_suspension.rs +165 -0
- package/corpus/templates/clips/desktop/src-tauri/src/rewind_chapters.rs +2434 -0
- package/corpus/templates/clips/desktop/src-tauri/src/rewind_clip.rs +1650 -0
- package/corpus/templates/clips/desktop/src-tauri/src/rewind_egress.rs +643 -0
- package/corpus/templates/clips/desktop/src-tauri/src/rewind_local_ask.rs +803 -0
- package/corpus/templates/clips/desktop/src-tauri/src/rewind_meeting_history.rs +595 -0
- package/corpus/templates/clips/desktop/src-tauri/src/screen_memory.rs +2900 -91
- package/corpus/templates/clips/desktop/src-tauri/src/screen_memory_ocr.rs +360 -0
- package/corpus/templates/clips/desktop/src-tauri/src/screen_memory_transcript.rs +408 -0
- package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +114 -33
- package/corpus/templates/clips/desktop/src-tauri/src/state.rs +2 -2
- package/corpus/templates/clips/desktop/src-tauri/src/system_audio.rs +13 -3
- package/corpus/templates/clips/desktop/src-tauri/src/tray.rs +4 -1
- package/corpus/templates/clips/desktop/src-tauri/src/util.rs +7 -13
- package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +198 -11
- package/corpus/templates/clips/desktop/src-tauri/tauri.alpha.conf.json +17 -0
- package/corpus/toolkit/CHANGELOG.md +6 -0
- package/corpus/toolkit/package.json +1 -1
- package/dist/cli/mcp-config-writers.d.ts +2 -2
- package/dist/cli/mcp-config-writers.d.ts.map +1 -1
- package/dist/cli/mcp-config-writers.js +6 -6
- package/dist/cli/mcp-config-writers.js.map +1 -1
- package/dist/cli/mcp.d.ts +14 -0
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +79 -0
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/skills-content/help.d.ts +1 -1
- package/dist/cli/skills-content/help.d.ts.map +1 -1
- package/dist/cli/skills-content/help.js +4 -3
- package/dist/cli/skills-content/help.js.map +1 -1
- package/dist/cli/skills-content/index.d.ts +1 -0
- package/dist/cli/skills-content/index.d.ts.map +1 -1
- package/dist/cli/skills-content/index.js +1 -0
- package/dist/cli/skills-content/index.js.map +1 -1
- package/dist/cli/skills-content/rewind-skill.d.ts +2 -0
- package/dist/cli/skills-content/rewind-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/rewind-skill.js +53 -0
- package/dist/cli/skills-content/rewind-skill.js.map +1 -0
- package/dist/cli/skills.d.ts +6 -0
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +90 -14
- package/dist/cli/skills.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/mcp/screen-memory-stdio.d.ts +365 -0
- package/dist/mcp/screen-memory-stdio.d.ts.map +1 -1
- package/dist/mcp/screen-memory-stdio.js +1014 -91
- package/dist/mcp/screen-memory-stdio.js.map +1 -1
- package/dist/mcp-client/index.d.ts +1 -1
- package/dist/mcp-client/index.d.ts.map +1 -1
- package/dist/mcp-client/index.js +1 -1
- package/dist/mcp-client/index.js.map +1 -1
- package/dist/mcp-client/screen-memory-local.d.ts +90 -0
- package/dist/mcp-client/screen-memory-local.d.ts.map +1 -1
- package/dist/mcp-client/screen-memory-local.js +590 -12
- package/dist/mcp-client/screen-memory-local.js.map +1 -1
- package/dist/observability/routes.d.ts +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/actions/provider-api.d.ts +4 -4
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/server/agent-chat-plugin.d.ts +5 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +10 -9
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/mcp-config-writers.ts +6 -4
- package/src/cli/mcp.ts +124 -0
- package/src/cli/skills-content/help.ts +4 -3
- package/src/cli/skills-content/index.ts +1 -0
- package/src/cli/skills-content/rewind-skill.ts +52 -0
- package/src/cli/skills.ts +115 -13
- package/src/mcp/screen-memory-stdio.ts +1360 -104
- package/src/mcp-client/index.ts +9 -0
- package/src/mcp-client/screen-memory-local.ts +847 -13
- package/src/server/agent-chat-plugin.ts +16 -9
|
@@ -1493,6 +1493,24 @@ All notable user-facing changes to Clips are documented here. Open it any time f
|
|
|
1493
1493
|
guideStartDescription:
|
|
1494
1494
|
"Use the desktop reminder or the menu-bar Start Meeting Notes item when the call begins.",
|
|
1495
1495
|
},
|
|
1496
|
+
rewindExtension: {
|
|
1497
|
+
title: "Add what happened before",
|
|
1498
|
+
description:
|
|
1499
|
+
"Pull a specific interval from local Rewind and add it to the start of this Clip. Nothing is added automatically.",
|
|
1500
|
+
progressLabel: "Rewind history processing progress",
|
|
1501
|
+
privateFirstTitle: "Make this Clip private first",
|
|
1502
|
+
privateFirstDescription:
|
|
1503
|
+
"Local Rewind history can contain context from before you chose to record. This changes the Clip to private. If anyone still has direct access, Clips will stop here so you can remove them in Share first.",
|
|
1504
|
+
makePrivateContinue: "Make private and continue",
|
|
1505
|
+
add30Seconds: "Add the previous 30 seconds",
|
|
1506
|
+
add5Minutes: "Add the previous 5 minutes",
|
|
1507
|
+
add5MinutesDescription:
|
|
1508
|
+
"Good for recovering the lead-in to a longer explanation.",
|
|
1509
|
+
privateReady: "This Clip is private. You can now add local Rewind history.",
|
|
1510
|
+
},
|
|
1511
|
+
timeline: {
|
|
1512
|
+
clipStartedHere: "Clip started here",
|
|
1513
|
+
},
|
|
1496
1514
|
};
|
|
1497
1515
|
|
|
1498
1516
|
export default messages;
|
|
@@ -349,7 +349,11 @@ export async function exportGif(
|
|
|
349
349
|
* before calling the `stitch-recordings` action with the uploaded URL.
|
|
350
350
|
*/
|
|
351
351
|
export async function exportConcat(
|
|
352
|
-
sources: Array<{
|
|
352
|
+
sources: Array<{
|
|
353
|
+
url: string;
|
|
354
|
+
format?: "webm" | "mp4";
|
|
355
|
+
hasAudio?: boolean;
|
|
356
|
+
}>,
|
|
353
357
|
onProgress?: (p: ExportProgress) => void,
|
|
354
358
|
): Promise<Blob> {
|
|
355
359
|
if (sources.length < 2) {
|
|
@@ -377,38 +381,41 @@ export async function exportConcat(
|
|
|
377
381
|
"-i",
|
|
378
382
|
`src${i}.${s.format ?? "webm"}`,
|
|
379
383
|
]);
|
|
384
|
+
const includesAudio = sources.every((source) => source.hasAudio !== false);
|
|
380
385
|
const filterParts: string[] = [];
|
|
381
386
|
const concatInputs: string[] = [];
|
|
382
387
|
for (let i = 0; i < sources.length; i++) {
|
|
383
388
|
filterParts.push(`[${i}:v]setpts=PTS-STARTPTS[v${i}]`);
|
|
384
|
-
|
|
385
|
-
|
|
389
|
+
if (includesAudio) {
|
|
390
|
+
filterParts.push(`[${i}:a]asetpts=PTS-STARTPTS[a${i}]`);
|
|
391
|
+
concatInputs.push(`[v${i}][a${i}]`);
|
|
392
|
+
} else {
|
|
393
|
+
concatInputs.push(`[v${i}]`);
|
|
394
|
+
}
|
|
386
395
|
}
|
|
387
396
|
filterParts.push(
|
|
388
|
-
`${concatInputs.join("")}concat=n=${sources.length}:v=1:a
|
|
397
|
+
`${concatInputs.join("")}concat=n=${sources.length}:v=1:a=${includesAudio ? 1 : 0}[outv]${includesAudio ? "[outa]" : ""}`,
|
|
389
398
|
);
|
|
390
|
-
|
|
399
|
+
const outputArgs = [
|
|
391
400
|
...inputArgs,
|
|
392
401
|
"-filter_complex",
|
|
393
402
|
filterParts.join(";"),
|
|
394
403
|
"-map",
|
|
395
404
|
"[outv]",
|
|
396
|
-
"-map",
|
|
397
|
-
"[outa]",
|
|
398
405
|
"-c:v",
|
|
399
406
|
"libx264",
|
|
400
407
|
"-preset",
|
|
401
408
|
"veryfast",
|
|
402
409
|
"-crf",
|
|
403
410
|
"22",
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
"128k",
|
|
411
|
+
...(includesAudio
|
|
412
|
+
? ["-map", "[outa]", "-c:a", "aac", "-b:a", "128k"]
|
|
413
|
+
: []),
|
|
408
414
|
"-movflags",
|
|
409
415
|
"+faststart",
|
|
410
416
|
"stitched.mp4",
|
|
411
|
-
]
|
|
417
|
+
];
|
|
418
|
+
await ffmpeg.exec(outputArgs);
|
|
412
419
|
|
|
413
420
|
const data = (await ffmpeg.readFile("stitched.mp4")) as Uint8Array;
|
|
414
421
|
const blob = new Blob([data as BlobPart], { type: "video/mp4" });
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type ClipVisibility = "private" | "org" | "public";
|
|
2
|
+
|
|
3
|
+
export function isPrivateClip(
|
|
4
|
+
visibility: ClipVisibility | string | null | undefined,
|
|
5
|
+
): boolean {
|
|
6
|
+
return visibility === "private";
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function canAddRewindHistory(
|
|
10
|
+
role: string | null | undefined,
|
|
11
|
+
visibility: ClipVisibility | string | null | undefined,
|
|
12
|
+
): boolean {
|
|
13
|
+
return role === "owner" && isPrivateClip(visibility);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function canOfferRewindHistory(
|
|
17
|
+
role: string | null | undefined,
|
|
18
|
+
): boolean {
|
|
19
|
+
return role === "owner";
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function rewindHistoryUnavailableReason(
|
|
23
|
+
role: string | null | undefined,
|
|
24
|
+
visibility: ClipVisibility | string | null | undefined,
|
|
25
|
+
): string | undefined {
|
|
26
|
+
if (role !== "owner") return "Only the owner can add Rewind history";
|
|
27
|
+
if (visibility !== "private") {
|
|
28
|
+
return "Make this Clip private before adding Rewind history";
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
@@ -45,6 +45,8 @@ export interface EditsJson {
|
|
|
45
45
|
thumbnail?: ThumbnailSpec | null;
|
|
46
46
|
/** Provenance: source recording IDs when this recording was created via stitch-recordings. */
|
|
47
47
|
stitchedFrom?: string[];
|
|
48
|
+
/** Original countdown-complete boundary after an explicit Rewind pre-roll was prepended. */
|
|
49
|
+
rewindOriginalStartMs?: number;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
export const DEFAULT_EDITS: EditsJson = {
|
|
@@ -73,6 +75,11 @@ export function parseEdits(raw: string | null | undefined): EditsJson {
|
|
|
73
75
|
...(Array.isArray(j.stitchedFrom)
|
|
74
76
|
? { stitchedFrom: j.stitchedFrom as string[] }
|
|
75
77
|
: {}),
|
|
78
|
+
...(typeof j.rewindOriginalStartMs === "number" &&
|
|
79
|
+
Number.isFinite(j.rewindOriginalStartMs) &&
|
|
80
|
+
j.rewindOriginalStartMs > 0
|
|
81
|
+
? { rewindOriginalStartMs: Math.round(j.rewindOriginalStartMs) }
|
|
82
|
+
: {}),
|
|
76
83
|
};
|
|
77
84
|
} catch {
|
|
78
85
|
return { ...DEFAULT_EDITS };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { agentNativePath } from "@agent-native/core/client/api-path";
|
|
2
|
+
|
|
3
|
+
/** Upload a browser-produced file through Clips' authenticated file route. */
|
|
4
|
+
export async function uploadFileClient(
|
|
5
|
+
blob: Blob,
|
|
6
|
+
filename: string,
|
|
7
|
+
): Promise<{ url: string } | null> {
|
|
8
|
+
const form = new FormData();
|
|
9
|
+
form.append("file", blob, filename);
|
|
10
|
+
const response = await fetch(agentNativePath("/_agent-native/file-upload"), {
|
|
11
|
+
method: "POST",
|
|
12
|
+
body: form,
|
|
13
|
+
});
|
|
14
|
+
if (!response.ok) return null;
|
|
15
|
+
const json = await response.json();
|
|
16
|
+
return json?.url ? { url: json.url as string } : null;
|
|
17
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: fixed
|
|
3
|
+
date: 2026-07-17
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Active Clips now keep Rewind's shared screen and audio capture stable until the Clip ends. Rewind's on/off, pause, and capture-mode controls visibly lock during recording, with a native safeguard for non-UI callers, so changing Rewind can no longer strand a Clip in optimization with a coverage gap.
|
|
7
|
+
|
|
8
|
+
Rewind Settings also use application exclusions as the single privacy model, return Back through the surface that opened them, describe local-memory maintenance before asking someone to act, and speak plainly about local agents finding moments on request.
|
|
9
|
+
|
|
10
|
+
The recording toolbar's timer now opens Clips without stopping the active recording, and Dock, tray, and shortcut opens all restore the active popover. Rewind-derived hosted Clips now create the resumable storage session they need before recording, and exact-range encoding uses an interactive-speed preset so Stop no longer appears frozen for roughly the Clip's full duration. The compact Rewind settings rows also reserve separate label and control columns to prevent overlap.
|
|
11
|
+
|
|
12
|
+
Recorder Home now keeps its bottom navigation fixed while the content region adapts to the available popover height. After Rewind's first-time setup, its single Home switch means remembering or paused; the duplicate Pause button and active-recording lock paragraph are gone. Full disable and capture-mode setup remain in Rewind Settings, while the active-Clip switch uses an unmistakable disabled treatment until recording ends.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Rewind can hand one bounded private Clip to your agent
|
|
3
|
+
date: 2026-07-17
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Rewind now connects directly to Codex or Claude Code through a dedicated local Screen Memory connection. When you ask an agent about something recent, bounded matching text can be returned without exposing local archive paths.
|
|
7
|
+
|
|
8
|
+
If the agent needs to see or hear the moment, it can request one timestamp range of up to five minutes. Clips shows **Review before sending** by default, including the exact interval, local preview, microphone and Mac-audio choices, and a clear statement that only the selected range becomes a private Clip. You can turn review off in Rewind Settings when the agent request itself is enough approval; Clips still leaves a visible handoff receipt.
|
|
9
|
+
|
|
10
|
+
Agent-created Clips are kept in the Library by default. An optional retention setting can remove future agent-created Clips after 24 hours, 7 days, or 30 days. Renaming, sharing, commenting on, reacting to, tagging, or archiving one preserves it.
|
|
11
|
+
|
|
12
|
+
Raw Rewind recordings and the complete local index remain on the Mac. The old Private versus Cloud-assisted mode gate has been removed; the boundary is now the bounded request and, for media, the private Clip handoff.
|
package/corpus/templates/clips/changelog/2026-07-17-rewind-home-can-copy-a-local-agent-prompt.md
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: improved
|
|
3
|
+
date: 2026-07-17
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Rewind's Home status is now one calm line instead of repeating retention settings. Its typography matches the recorder controls, and a new copy button provides a ready-to-paste prompt that helps a local agent recover the newest relevant Rewind context without uploading raw media. Pausing and resuming also restore Recorder Home to its complete natural height, so the Clip controls and fixed footer never overlap after the shorter paused state.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: improved
|
|
3
|
+
date: 2026-07-17
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Rewind now fits the Clips popover instead of taking it over. Home shows one compact status row with Pause and an on/off switch; configuration lives in Settings. Privacy language is plain, disk limits are visible, excluded apps use a native application picker instead of bundle IDs, and agent retrieval is the primary story while manual search remains a quiet local fallback.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: improved
|
|
3
|
+
date: 2026-07-17
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The full Clips interface now stays available while a recording is active. Its compact header uses a clear live REC signal and an explicit Stop button without explaining the interface back to the user. Reopening the interface respects **Show Clips in screen captures**: it remains usable but capture-excluded by default, and appears in recordings only when the user turns that setting on.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: improved
|
|
3
|
+
date: 2026-07-18
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Rewind now divides retained screen memory into local work chapters that any connected agent can search. Agents can inspect an exact local frame or a small contact sheet before asking to turn a bounded range into a private Clip. Raw Rewind media and archive paths remain on the Mac.
|
|
7
|
+
|
|
8
|
+
The copied Rewind prompt can repair the local connection, handles ambiguous chapters explicitly, and only escalates to a Clip when audio, motion, deeper processing, or durable queryability requires it. Rewind Settings also make agent activity and local-export receipts easier to find.
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"dev": "pnpm run check:prereqs && pnpm run kill:installed && tauri dev",
|
|
11
11
|
"build": "vite build",
|
|
12
12
|
"build:tauri": "CLIPS_DESKTOP_LOCAL_BUILD=1 pnpm run check:prereqs && CLIPS_DESKTOP_LOCAL_BUILD=1 tauri build --config '{\"bundle\":{\"createUpdaterArtifacts\":false},\"plugins\":{\"updater\":{\"active\":false}}}' && node ./scripts/sign-macos-local.ts",
|
|
13
|
+
"build:alpha": "CLIPS_DESKTOP_LOCAL_BUILD=1 RUSTUP_TOOLCHAIN=1.88.0 pnpm run check:prereqs && CLIPS_DESKTOP_LOCAL_BUILD=1 RUSTUP_TOOLCHAIN=1.88.0 tauri build --debug --config src-tauri/tauri.alpha.conf.json && CLIPS_MACOS_APP_NAME='Clips Alpha' CLIPS_MACOS_BUILD_PROFILE=debug CLIPS_MACOS_BUNDLE_ID='com.clips.tray.alpha' node ./scripts/sign-macos-local.ts",
|
|
13
14
|
"tauri": "tauri",
|
|
14
15
|
"vite:dev": "vite",
|
|
15
16
|
"vite:build": "vite build",
|
|
@@ -12,11 +12,14 @@ if (process.platform !== "darwin") {
|
|
|
12
12
|
|
|
13
13
|
const scriptDir = dirname(fileURLToPath(import.meta.url));
|
|
14
14
|
const desktopDir = resolve(scriptDir, "..");
|
|
15
|
+
const appName = process.env.CLIPS_MACOS_APP_NAME || "Clips";
|
|
16
|
+
const buildProfile = process.env.CLIPS_MACOS_BUILD_PROFILE || "release";
|
|
15
17
|
const appPath = resolve(
|
|
16
18
|
desktopDir,
|
|
17
|
-
|
|
19
|
+
`src-tauri/target/${buildProfile}/bundle/macos/${appName}.app`,
|
|
18
20
|
);
|
|
19
21
|
const entitlementsPath = resolve(desktopDir, "src-tauri/Entitlements.plist");
|
|
22
|
+
const stableAdHocBundleId = process.env.CLIPS_MACOS_BUNDLE_ID?.trim();
|
|
20
23
|
|
|
21
24
|
if (!existsSync(appPath)) {
|
|
22
25
|
console.warn(`[clips-desktop] No macOS app bundle found at ${appPath}`);
|
|
@@ -24,6 +27,13 @@ if (!existsSync(appPath)) {
|
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
function sign(identity: string) {
|
|
30
|
+
const stableRequirement =
|
|
31
|
+
identity === "-" && stableAdHocBundleId
|
|
32
|
+
? [
|
|
33
|
+
"--requirements",
|
|
34
|
+
`=designated => identifier \"${stableAdHocBundleId.replaceAll('"', "")}\"`,
|
|
35
|
+
]
|
|
36
|
+
: [];
|
|
27
37
|
const result = spawnSync(
|
|
28
38
|
"codesign",
|
|
29
39
|
[
|
|
@@ -31,6 +41,7 @@ function sign(identity: string) {
|
|
|
31
41
|
"--deep",
|
|
32
42
|
"--sign",
|
|
33
43
|
identity,
|
|
44
|
+
...stableRequirement,
|
|
34
45
|
"--options",
|
|
35
46
|
"runtime",
|
|
36
47
|
"--entitlements",
|