feat: exclude dependency tests and docs from desktop packages - #123
Merged
Conversation
ZongYue99
added a commit
that referenced
this pull request
Aug 6, 2026
* feat: exclude dependency tests and docs from desktop packages (#123) * fix: unify cross-agent action backgrounds * fix: simplify memory tool call headings * feat(memory): commit episode routing on turn complete * fix(memory): separate retrieval content and validate L3 evidence * fix(memory): finalize episode rewards and processing * chore: docs * chore: readme * chore: show invitation token (#135) * feat(memory): link related memory details * feat(analytics): track desktop memory adds during agent-source scans (#139) Co-authored-by: antalike <> Co-authored-by: Cursor <cursoragent@cursor.com> * feat: merge pkg && optimize pkg (#140) * feat: merge pkg shell * feat: merge pkg shell * feat: merge pkg shell * feat: merge pkg shell * feat: tighten onboarding activation with cross-agent relay and product tour Ship the first-chat relay/opt-in cards, memory verification loop, and a memory-first product tour without local mock switches or test-only scaffolding. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(backend): share scan permission per installation * chore: reorganize desktop packaging internal scripts (#141) * fix(backend): refine onboarding permissions and actions * fix: surface structured quota exhaustion errors * feat(memory): add time-filtered trace recall * feat: trust Codex hooks and reveal account identifiers * fix(config): fail loud on invalid config instead of silently using defaults (#7) loadConfig() caught YAML parse and schema validation errors, logged a console.warn, and returned a fresh default Config. Any onboarded settings (including BYOK provider credentials) were silently discarded and the CLI kept running against defaults with no non-zero exit, contradicting the project's fail-loud philosophy. Throw a new ConfigError (ConfigLoadError for bad YAML/schema, EnvValueError for missing env var references, both now exported) when the config file exists but is invalid. A missing config file still returns the defaults unchanged, since first-run `memmy onboard` depends on that path. The CLI entrypoint (main.ts) catches ConfigError specifically and prints a concise `memmy: <reason>` message with a non-zero exit code instead of an unhandled stack trace; other entrypoints (serve/gateway route through the same CLI main(), and the frontend-bridge/websocket HTTP layer already has generic catch blocks that turn thrown errors into clean error responses). * feat(feishu): add QR bot setup (#127) * fix(memmy-memory): surface memory-service outages instead of silent fallback (#9) MemmyMemoryHook.beforeRun/afterRun/sessionStart/sessionEnd caught every connection error from the memory service and only recorded it on an unread `lastError` field, so an unreachable service (e.g. default http://127.0.0.1:18960 down) degraded completely silently: no CLI/log warning, and the LLM turn context received neither a recall block nor any notice, indistinguishable from "memory checked, found nothing". This contradicted the README's fail-loud promise and drove agents to silently fall back to the local MEMORY.md/history.jsonl store. - Replace the blanket try/catch with per-phase handling that emits a deduped console.warn (once per session, reset on recovery) and injects an honest <memmy_memory_status status="unavailable"> notice into the user message so the model is told memory wasn't checked, instead of implying nothing relevant was found. - Drop the stale in-flight turn entry on a failed beforeRun so afterRun doesn't try to complete a turn that was never opened server-side. - Document the new status tag in the memory context protocol prompt. Failures still never crash the turn (fail-loud, not fail-crash). * chore: add embedding mode into pkg (#147) * feat(analytics): send userId at the top level of /api/analytics/events (#148) Keep params.user_id for event dimensions while also exposing userId alongside clientId so the cloud proxy can filter and map GA4 user identity. Co-authored-by: antalike <> Co-authored-by: Cursor <cursoragent@cursor.com> * feat: refine product tour for deny-scan and scroll placement Skip the logs tour step when scan is denied, and stabilize spotlight scrolling and bubble placement so onboarding steps stay readable. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: reshape onboarding analytics for funnel-friendly step tracking Emit viewed/skipped per tour step with flow branching, and defer onboarding_completed until nickname. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(settings): show BYOK usage detail copy (#155) Co-authored-by: jiachengzhen <jiacz@memtensor.cn> * fix: seed first-report chat instead of re-running the agent Persist the onboarding insight report into a WebUI session as soon as it is generated, then open that history on home so finishing the guide no longer triggers a duplicate Thinking turn. Co-authored-by: Cursor <cursoragent@cursor.com> * feat(onboarding): focus initial report on preferences and latest task * feat(onboarding): prioritize first report memory handoff * codeowners (#159) * chore: show invitation token * codeowners * fix(onboarding): preserve first report context across agents * fix(onboarding): streamline first report handoff * fix: open WorkBuddy with task deeplink and /memmy-memory prompt (#162) Use workbuddy://task?action=start&prompt= for GUI handoff, prefix the continuation text with /memmy-memory, and fall back to opening the app without Terminal. Co-authored-by: antalike <> Co-authored-by: Cursor <cursoragent@cursor.com> * release: Memmy v1.0.5 (#170) * chore(release): prepare Memmy v1.0.5 * test(release): align v1.0.5 smoke contracts * test(config): expect invalid files to fail loudly --------- Co-authored-by: jiachengzhen <jiacz@memtensor.cn> --------- Co-authored-by: Wang Daoji <75928131+Wang-Daoji@users.noreply.github.com> Co-authored-by: Hustzdy <67457465+wustzdy@users.noreply.github.com> Co-authored-by: jiang <fdjzy@qq.com> Co-authored-by: Jiang <33757498+hijzy@users.noreply.github.com> Co-authored-by: antalike <527949167@qq.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: shsfcx <shsfcx@shsfcxdeMacBook-Pro.local> Co-authored-by: Daoji Wang <627665797@qq.com> Co-authored-by: Xinmin Zeng <135568692+fancyboi999@users.noreply.github.com> Co-authored-by: Ericwong <970699442@qq.com> Co-authored-by: antalike <> Co-authored-by: zhiqi <99724206+dolnna@users.noreply.github.com> Co-authored-by: zhaxi <syzsunshine219@gmail.com> Co-authored-by: jiachengzhen <jiacz@memtensor.cn>
ZongYue99
added a commit
that referenced
this pull request
Aug 6, 2026
* feat: exclude dependency tests and docs from desktop packages (#123) * fix: unify cross-agent action backgrounds * fix: simplify memory tool call headings * feat(memory): commit episode routing on turn complete * fix(memory): separate retrieval content and validate L3 evidence * fix(memory): finalize episode rewards and processing * chore: docs * chore: readme * chore: show invitation token (#135) * feat(memory): link related memory details * feat(analytics): track desktop memory adds during agent-source scans (#139) Co-authored-by: antalike <> Co-authored-by: Cursor <cursoragent@cursor.com> * feat: merge pkg && optimize pkg (#140) * feat: merge pkg shell * feat: merge pkg shell * feat: merge pkg shell * feat: merge pkg shell * feat: tighten onboarding activation with cross-agent relay and product tour Ship the first-chat relay/opt-in cards, memory verification loop, and a memory-first product tour without local mock switches or test-only scaffolding. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(backend): share scan permission per installation * chore: reorganize desktop packaging internal scripts (#141) * fix(backend): refine onboarding permissions and actions * fix: surface structured quota exhaustion errors * feat(memory): add time-filtered trace recall * feat: trust Codex hooks and reveal account identifiers * fix(config): fail loud on invalid config instead of silently using defaults (#7) loadConfig() caught YAML parse and schema validation errors, logged a console.warn, and returned a fresh default Config. Any onboarded settings (including BYOK provider credentials) were silently discarded and the CLI kept running against defaults with no non-zero exit, contradicting the project's fail-loud philosophy. Throw a new ConfigError (ConfigLoadError for bad YAML/schema, EnvValueError for missing env var references, both now exported) when the config file exists but is invalid. A missing config file still returns the defaults unchanged, since first-run `memmy onboard` depends on that path. The CLI entrypoint (main.ts) catches ConfigError specifically and prints a concise `memmy: <reason>` message with a non-zero exit code instead of an unhandled stack trace; other entrypoints (serve/gateway route through the same CLI main(), and the frontend-bridge/websocket HTTP layer already has generic catch blocks that turn thrown errors into clean error responses). * feat(feishu): add QR bot setup (#127) * fix(memmy-memory): surface memory-service outages instead of silent fallback (#9) MemmyMemoryHook.beforeRun/afterRun/sessionStart/sessionEnd caught every connection error from the memory service and only recorded it on an unread `lastError` field, so an unreachable service (e.g. default http://127.0.0.1:18960 down) degraded completely silently: no CLI/log warning, and the LLM turn context received neither a recall block nor any notice, indistinguishable from "memory checked, found nothing". This contradicted the README's fail-loud promise and drove agents to silently fall back to the local MEMORY.md/history.jsonl store. - Replace the blanket try/catch with per-phase handling that emits a deduped console.warn (once per session, reset on recovery) and injects an honest <memmy_memory_status status="unavailable"> notice into the user message so the model is told memory wasn't checked, instead of implying nothing relevant was found. - Drop the stale in-flight turn entry on a failed beforeRun so afterRun doesn't try to complete a turn that was never opened server-side. - Document the new status tag in the memory context protocol prompt. Failures still never crash the turn (fail-loud, not fail-crash). * chore: add embedding mode into pkg (#147) * feat(analytics): send userId at the top level of /api/analytics/events (#148) Keep params.user_id for event dimensions while also exposing userId alongside clientId so the cloud proxy can filter and map GA4 user identity. Co-authored-by: antalike <> Co-authored-by: Cursor <cursoragent@cursor.com> * feat: refine product tour for deny-scan and scroll placement Skip the logs tour step when scan is denied, and stabilize spotlight scrolling and bubble placement so onboarding steps stay readable. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: reshape onboarding analytics for funnel-friendly step tracking Emit viewed/skipped per tour step with flow branching, and defer onboarding_completed until nickname. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(settings): show BYOK usage detail copy (#155) Co-authored-by: jiachengzhen <jiacz@memtensor.cn> * fix: seed first-report chat instead of re-running the agent Persist the onboarding insight report into a WebUI session as soon as it is generated, then open that history on home so finishing the guide no longer triggers a duplicate Thinking turn. Co-authored-by: Cursor <cursoragent@cursor.com> * feat(onboarding): focus initial report on preferences and latest task * feat(onboarding): prioritize first report memory handoff * codeowners (#159) * chore: show invitation token * codeowners * fix(onboarding): preserve first report context across agents * fix(onboarding): streamline first report handoff * fix: open WorkBuddy with task deeplink and /memmy-memory prompt (#162) Use workbuddy://task?action=start&prompt= for GUI handoff, prefix the continuation text with /memmy-memory, and fall back to opening the app without Terminal. Co-authored-by: antalike <> Co-authored-by: Cursor <cursoragent@cursor.com> * chore(release): prepare Memmy v1.0.5 * test(release): align v1.0.5 smoke contracts * test(config): expect invalid files to fail loudly --------- Co-authored-by: Wang Daoji <75928131+Wang-Daoji@users.noreply.github.com> Co-authored-by: Hustzdy <67457465+wustzdy@users.noreply.github.com> Co-authored-by: jiang <fdjzy@qq.com> Co-authored-by: Jiang <33757498+hijzy@users.noreply.github.com> Co-authored-by: ZongYue <52625187+ZongYue99@users.noreply.github.com> Co-authored-by: antalike <527949167@qq.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: shsfcx <shsfcx@shsfcxdeMacBook-Pro.local> Co-authored-by: Daoji Wang <627665797@qq.com> Co-authored-by: Xinmin Zeng <135568692+fancyboi999@users.noreply.github.com> Co-authored-by: Ericwong <970699442@qq.com> Co-authored-by: antalike <> Co-authored-by: zhiqi <99724206+dolnna@users.noreply.github.com> Co-authored-by: jiachengzhen <jiacz@memtensor.cn>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
feat: exclude dependency tests and docs from desktop packages