@@ -19,6 +19,7 @@ import {
1919import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-entry" ;
2020import { appendRegularFile } from "openclaw/plugin-sdk/security-runtime" ;
2121import { normalizeStringEntries , uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime" ;
22+ import { appendFailedDreamingEvent } from "./dreaming-events.js" ;
2223import { writeDailyDreamingPhaseBlock } from "./dreaming-markdown.js" ;
2324import {
2425 generateAndAppendDreamNarrative ,
@@ -1902,31 +1903,55 @@ export async function runDreamingSweepPhases(params: {
19021903 cfg : params . cfg as Parameters < typeof resolveMemoryLightDreamingConfig > [ 0 ] [ "cfg" ] ,
19031904 } ) ;
19041905 if ( light . enabled && light . limit > 0 ) {
1905- await runLightDreaming ( {
1906- workspaceDir : params . workspaceDir ,
1907- cfg : params . cfg ,
1908- config : light ,
1909- logger : params . logger ,
1910- subagent : params . subagent ,
1911- nowMs : sweepNowMs ,
1912- detachNarratives : params . detachNarratives ,
1913- } ) ;
1906+ try {
1907+ await runLightDreaming ( {
1908+ workspaceDir : params . workspaceDir ,
1909+ cfg : params . cfg ,
1910+ config : light ,
1911+ logger : params . logger ,
1912+ subagent : params . subagent ,
1913+ nowMs : sweepNowMs ,
1914+ detachNarratives : params . detachNarratives ,
1915+ } ) ;
1916+ } catch ( err ) {
1917+ await appendFailedDreamingEvent ( {
1918+ workspaceDir : params . workspaceDir ,
1919+ phase : "light" ,
1920+ error : formatErrorMessage ( err ) ,
1921+ storageMode : light . storage . mode ,
1922+ nowMs : sweepNowMs ,
1923+ logger : params . logger ,
1924+ } ) ;
1925+ throw err ;
1926+ }
19141927 }
19151928
19161929 const rem = resolveMemoryRemDreamingConfig ( {
19171930 pluginConfig : params . pluginConfig ,
19181931 cfg : params . cfg as Parameters < typeof resolveMemoryRemDreamingConfig > [ 0 ] [ "cfg" ] ,
19191932 } ) ;
19201933 if ( rem . enabled && rem . limit > 0 ) {
1921- await runRemDreaming ( {
1922- workspaceDir : params . workspaceDir ,
1923- cfg : params . cfg ,
1924- config : rem ,
1925- logger : params . logger ,
1926- subagent : params . subagent ,
1927- nowMs : sweepNowMs ,
1928- detachNarratives : params . detachNarratives ,
1929- } ) ;
1934+ try {
1935+ await runRemDreaming ( {
1936+ workspaceDir : params . workspaceDir ,
1937+ cfg : params . cfg ,
1938+ config : rem ,
1939+ logger : params . logger ,
1940+ subagent : params . subagent ,
1941+ nowMs : sweepNowMs ,
1942+ detachNarratives : params . detachNarratives ,
1943+ } ) ;
1944+ } catch ( err ) {
1945+ await appendFailedDreamingEvent ( {
1946+ workspaceDir : params . workspaceDir ,
1947+ phase : "rem" ,
1948+ error : formatErrorMessage ( err ) ,
1949+ storageMode : rem . storage . mode ,
1950+ nowMs : sweepNowMs ,
1951+ logger : params . logger ,
1952+ } ) ;
1953+ throw err ;
1954+ }
19301955 }
19311956}
19321957
@@ -1977,6 +2002,13 @@ async function runPhaseIfTriggered(
19772002 } ) ;
19782003 }
19792004 } catch ( err ) {
2005+ await appendFailedDreamingEvent ( {
2006+ workspaceDir,
2007+ phase : params . phase ,
2008+ error : formatErrorMessage ( err ) ,
2009+ storageMode : params . config . storage . mode ,
2010+ logger : params . logger ,
2011+ } ) ;
19802012 params . logger . error (
19812013 `memory-core: ${ params . phase } dreaming failed for workspace ${ workspaceDir } : ${ formatErrorMessage ( err ) } ` ,
19822014 ) ;
0 commit comments