dreaming: polish review copy and diary wrapping

This commit is contained in:
Dave Morin
2026-04-09 21:48:43 -10:00
committed by Vignesh
parent 14c96261e0
commit e710d6938f
15 changed files with 48 additions and 33 deletions

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:36.377Z",
"generatedAt": "2026-04-10T07:41:31.353Z",
"locale": "de",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:36.662Z",
"generatedAt": "2026-04-10T07:41:33.834Z",
"locale": "es",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:37.521Z",
"generatedAt": "2026-04-10T07:41:44.018Z",
"locale": "fr",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:38.420Z",
"generatedAt": "2026-04-10T07:41:52.495Z",
"locale": "id",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:36.945Z",
"generatedAt": "2026-04-10T07:41:36.385Z",
"locale": "ja-JP",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:37.225Z",
"generatedAt": "2026-04-10T07:41:39.331Z",
"locale": "ko",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:38.735Z",
"generatedAt": "2026-04-10T07:41:53.862Z",
"locale": "pl",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:36.091Z",
"generatedAt": "2026-04-10T07:41:28.725Z",
"locale": "pt-BR",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:37.819Z",
"generatedAt": "2026-04-10T07:41:46.992Z",
"locale": "tr",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:38.126Z",
"generatedAt": "2026-04-10T07:41:49.436Z",
"locale": "uk",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:35.532Z",
"generatedAt": "2026-04-10T07:41:23.762Z",
"locale": "zh-CN",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -27,11 +27,11 @@
"dreaming.phase.rem",
"dreaming.tabs.advanced"
],
"generatedAt": "2026-04-10T07:35:35.815Z",
"generatedAt": "2026-04-10T07:41:26.696Z",
"locale": "zh-TW",
"model": "gpt-5.4",
"provider": "openai",
"sourceHash": "06a0c6e1271629057cb308dd9f71232ba4e85e5b04ec5d2413dc7a36b35b582d",
"sourceHash": "d3dce86843ee772df42bab6583100c3bb4095c71cb53d310a3faa84ae22a66de",
"totalKeys": 693,
"translatedKeys": 667,
"workflow": 1

View File

@@ -294,7 +294,7 @@ export const en: TranslationMap = {
scene: {
backfill: "Backfill",
reset: "Reset",
clearGrounded: "Clear Grounded",
clearGrounded: "Clear Replayed",
working: "Working…",
},
phase: {
@@ -305,13 +305,13 @@ export const en: TranslationMap = {
},
advanced: {
eyebrow: "Review",
title: "Daily Log Replay",
title: "Daily Log Review",
description:
"See what replayed from the daily log, what is waiting for promotion, and what already made it through.",
"Review what came from the daily log, what is waiting for promotion, and what was promoted recently.",
summaryFromDailyLog: "from daily log",
summaryWaiting: "waiting",
summaryPromotedToday: "promoted today",
stagedTitle: "From Daily Log",
stagedTitle: "From the Daily Log",
stagedDescription: "Replay candidates pulled from older daily log entries.",
shortTermTitle: "Waiting for Promotion",
shortTermDescription: "Current short-term candidates waiting to graduate into real memory.",
@@ -321,7 +321,7 @@ export const en: TranslationMap = {
originLive: "live",
originMixed: "mixed",
promotedTitle: "Recent Promotions",
promotedDescription: "Items that already made it through promotion recently.",
promotedDescription: "Items that already made it through promotion.",
emptyGrounded: "No staged grounded replay entries right now.",
emptyShortTerm: "No short-term entries to inspect.",
emptyPromoted: "No recent promotions to inspect.",

View File

@@ -707,8 +707,11 @@
.dreams-diary__entry {
position: relative;
max-width: 680px;
width: min(100%, 680px);
min-width: 0;
padding: 0 0 0 16px;
flex-shrink: 0;
overflow-x: clip;
animation: diary-entry-reveal 1.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@@ -765,6 +768,9 @@
display: flex;
gap: 6px;
margin: 0 0 24px;
width: min(100%, 680px);
max-width: 100%;
min-width: 0;
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: none;
@@ -803,6 +809,9 @@
.dreams-diary__prose {
/* no styling container needed, just prose spacing */
max-width: 100%;
min-width: 0;
overflow-x: clip;
}
.dreams-diary__para {
@@ -810,6 +819,8 @@
font-size: 13px;
line-height: 1.7;
color: var(--text);
overflow-wrap: anywhere;
word-break: break-word;
animation: diary-text-stream 2.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}

View File

@@ -138,7 +138,7 @@ describe("dreaming view", () => {
);
expect(buttons).not.toContain("Backfill");
expect(buttons).not.toContain("Reset");
expect(buttons).not.toContain("Clear Grounded");
expect(buttons).not.toContain("Clear Replayed");
});
it("shows dream bubble when active", () => {
@@ -323,20 +323,24 @@ describe("dreaming view", () => {
setDreamAdvancedWaitingSort("recent");
const container = renderInto(buildProps());
expect(container.querySelector(".dreams-advanced__title")?.textContent).toContain(
"Daily Log Replay",
"Daily Log Review",
);
const buttons = [...container.querySelectorAll("button")].map((node) =>
node.textContent?.trim(),
);
expect(buttons).toContain("Backfill");
expect(buttons).toContain("Reset");
expect(buttons).toContain("Clear Grounded");
expect(buttons).toContain("Clear Replayed");
expect(buttons).toContain("Most recent");
expect(buttons).toContain("Strongest support");
const sectionTitles = [...container.querySelectorAll(".dreams-advanced__section-title")].map(
(node) => node.textContent?.trim(),
);
expect(sectionTitles).toEqual(["From Daily Log", "Waiting for Promotion", "Recent Promotions"]);
expect(sectionTitles).toEqual([
"From the Daily Log",
"Waiting for Promotion",
"Recent Promotions",
]);
expect(container.querySelector(".dreams-advanced__summary")?.textContent).toContain(
"1 from daily log",
);