Repository navigation
fix(cli): swallow synchronous goal-persistence throws at the startup gate (#10311) #10317
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from 1 commit
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verified real against the code:
Config.getGoalRuntimeReady()(packages/core/src/config/config.ts:8462) reaches a synchronousthrow new GoalPersistenceUnavailableError()viagetGoalRuntime()when chat recording is disabled, while the documented contract (packages/core/src/goals/goal-protocol.ts:224) says it rejects — andgetGoalRuntimePrepared()carries the same shape. The fix (making both methodsasyncso the sync throw becomes a rejection) lives inpackages/core, outside this PR's footprint, and the finding itself marks it a maintainer follow-up — so it is deferred to the follow-up queue rather than implemented here. This PR's gate fix, the "must stay inside the try" comment, and the tests remain as defense-in-depth until that core change lands.中文说明
已对照代码核实为真实问题:聊天记录被禁用时,
Config.getGoalRuntimeReady()(packages/core/src/config/config.ts:8462)会经由getGoalRuntime()同步throw new GoalPersistenceUnavailableError,而文档契约(packages/core/src/goals/goal-protocol.ts:224)写的是拒绝(reject)——getGoalRuntimePrepared()也带有同样的形态。修复方案(把两个方法改为async,让同步抛出变成拒绝)位于packages/core,超出本 PR 的足迹,且该意见本身也标注为维护者后续跟进事项 —— 因此将其延后到后续队列,而不在本 PR 实现。在 core 改动落地之前,本 PR 的门禁修复、“必须留在 try 内”注释与测试作为纵深防御保留。