Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
416 commits
Select commit Hold shift + click to select a range
d1c1d1f
Merge pull request #102 from hijzy/main
hijzy Jul 29, 2026
87ae306
fix(memory): show latest retry error once
Jul 29, 2026
1445cf6
Merge pull request #103 from hijzy/main
hijzy Jul 29, 2026
7d04a44
[Human] fix: correct
Jul 29, 2026
25f8a93
refactor: simplify session DAG builder prompt
Wang-Daoji Jul 29, 2026
b08424a
[Human] fix: correct
Jul 29, 2026
234fa99
Merge pull request #104 from whipser030/v1.0.3-3.0updte
hijzy Jul 29, 2026
1684105
Merge remote-tracking branch 'upstream/v1.0.4' into feature/agent-wy
Wang-Daoji Jul 29, 2026
d8f3d93
fix: unify startup migration entry
Wang-Daoji Jul 29, 2026
93fdcf7
refactor: finalize task metadata on DAG switches
Wang-Daoji Jul 30, 2026
9d3948c
Merge upstream/main into feature/agent-wy
Wang-Daoji Jul 30, 2026
df61de4
fix: prevent product tour navigation loop
Wang-Daoji Jul 30, 2026
4b6fabb
Merge pull request #114 from MemTensor/main
Wang-Daoji Jul 30, 2026
454d654
Merge remote-tracking branch 'upstream/main' into feature/agent-wy
Wang-Daoji Jul 30, 2026
014b69b
Merge remote-tracking branch 'upstream/main' into feature/agent-wy
Wang-Daoji Jul 30, 2026
05ba7ec
fix(dev): recognize model presets before gateway startup
Wang-Daoji Jul 30, 2026
01769af
fix model provider settings list
Wang-Daoji Jul 30, 2026
72fab41
Merge remote-tracking branch 'upstream/main' into feature/agent-wy
Wang-Daoji Jul 31, 2026
dfecdd4
fix desktop provider api type defaults
Wang-Daoji Jul 31, 2026
fbdaac2
feat: exclude dependency tests and docs from desktop packages (#123)
wustzdy Jul 31, 2026
e5734d5
Merge pull request #124 from MemTensor/main
Wang-Daoji Jul 31, 2026
b9b9772
Merge remote-tracking branch 'upstream/v1.0.5' into feature/agent-wy
Wang-Daoji Jul 31, 2026
412cd73
fix(agent): preserve channel streaming capability in GUI sync
Wang-Daoji Jul 31, 2026
b154e25
fix desktop external user message display
Wang-Daoji Jul 31, 2026
bc6c049
fix(cli): show terminal target options in root help
Wang-Daoji Jul 31, 2026
302b8cd
fix: unify cross-agent action backgrounds
Jul 31, 2026
d692f00
Merge pull request #125 from hijzy/main
hijzy Jul 31, 2026
f108ad4
fix: simplify memory tool call headings
Jul 31, 2026
33729a2
Merge pull request #126 from hijzy/main
hijzy Jul 31, 2026
8cf7734
feat(desktop): restyle chat model selector
Wang-Daoji Jul 31, 2026
7533366
feat(desktop): add model provider logos
Wang-Daoji Aug 2, 2026
9b29db0
feat(desktop): show IM channel icons in task titles
Wang-Daoji Aug 3, 2026
8f081ce
fix(desktop): align IM icons with title line height
Wang-Daoji Aug 3, 2026
81c19eb
fix(desktop): use app icon for account models
Wang-Daoji Aug 3, 2026
6642966
feat(memory): commit episode routing on turn complete
Aug 3, 2026
328c5df
Merge pull request #130 from hijzy/main
hijzy Aug 3, 2026
06bed4d
Merge remote-tracking branch 'upstream/v1.0.5' into feature/agent-wy
Wang-Daoji Aug 3, 2026
65799f4
fix(desktop): align model selector icons
Wang-Daoji Aug 3, 2026
b7129d7
fix(memory): separate retrieval content and validate L3 evidence
Aug 3, 2026
8377766
Merge pull request #131 from hijzy/main
hijzy Aug 3, 2026
3074213
fix(memory): finalize episode rewards and processing
Aug 3, 2026
54b3dfe
Merge pull request #132 from hijzy/main
hijzy Aug 3, 2026
9407529
chore: docs
Aug 3, 2026
f8cf955
chore: readme
Aug 3, 2026
64ceb34
Merge pull request #133 from hijzy/main
hijzy Aug 3, 2026
b0b4df2
chore: show invitation token (#135)
ZongYue99 Aug 3, 2026
c388e5d
feat(memory): link related memory details
Aug 3, 2026
4ee0775
Merge pull request #136 from hijzy/main
hijzy Aug 3, 2026
9857a05
feat(analytics): track desktop memory adds during agent-source scans …
antalike Aug 3, 2026
ca31449
feat: merge pkg && optimize pkg (#140)
wustzdy Aug 3, 2026
91e881d
feat: tighten onboarding activation with cross-agent relay and produc…
Aug 3, 2026
49ea071
fix(backend): share scan permission per installation
Aug 3, 2026
06d7ae2
chore: reorganize desktop packaging internal scripts (#141)
wustzdy Aug 3, 2026
627bbb3
Merge pull request #142 from hijzy/main
hijzy Aug 3, 2026
bb82a07
Merge upstream/v1.0.5 into feature/agent-wy
Wang-Daoji Aug 4, 2026
2f59808
fix(backend): refine onboarding permissions and actions
Aug 4, 2026
65bf870
Merge pull request #143 from hijzy/main
hijzy Aug 4, 2026
03033d2
Merge remote-tracking branch 'upstream/v1.0.5' into feature/agent-wy
Wang-Daoji Aug 4, 2026
326d7b9
fix: surface structured quota exhaustion errors
Wang-Daoji Aug 4, 2026
8b317cf
Merge pull request #144 from Wang-Daoji/feature/v1.0.5-wy
Wang-Daoji Aug 4, 2026
f58510c
feat(memory): add time-filtered trace recall
Aug 4, 2026
03499e9
Merge pull request #145 from hijzy/main
hijzy Aug 4, 2026
581bc4f
Merge remote-tracking branch 'upstream/v1.0.5' into feature/agent-wy
Wang-Daoji Aug 4, 2026
dee4414
Merge remote-tracking branch 'upstream/v1.0.5' into feature/agent-wy
Wang-Daoji Aug 4, 2026
3e8ce6d
feat: trust Codex hooks and reveal account identifiers
Aug 4, 2026
43127e9
Merge pull request #146 from hijzy/main
hijzy Aug 4, 2026
becb87e
fix(config): fail loud on invalid config instead of silently using de…
fancyboi999 Aug 4, 2026
8656996
feat(feishu): add QR bot setup (#127)
Ericwong5021 Aug 4, 2026
80b07d7
fix(memmy-memory): surface memory-service outages instead of silent f…
fancyboi999 Aug 4, 2026
b826c35
chore: add embedding mode into pkg (#147)
wustzdy Aug 4, 2026
8c778ed
feat(analytics): send userId at the top level of /api/analytics/event…
antalike Aug 4, 2026
8e60f1c
feat: add persistent cross-turn goal mode
Wang-Daoji Aug 4, 2026
e0683d7
fix: expose goal slash command in web ui
Wang-Daoji Aug 4, 2026
f6522c9
fix: polish goal command composer ui
Wang-Daoji Aug 4, 2026
03783f4
feat: refine product tour for deny-scan and scroll placement
Aug 4, 2026
50e391c
fix: hide goal command argument hint
Wang-Daoji Aug 4, 2026
98e868e
fix: normalize goal request display and titles
Wang-Daoji Aug 4, 2026
b394e9e
fix(memory): keep short pattern terms out of raw JSON metadata columns
DevMello Aug 4, 2026
163fdf8
fix(backend): stop capturing tool results as the user query
DevMello Aug 5, 2026
bae7941
feat: reshape onboarding analytics for funnel-friendly step tracking
Aug 5, 2026
5721f0f
Merge pull request #1 from antalike/feat/onboarding-activation
dolnna Aug 5, 2026
2ea0a78
fix: stabilize goal UI hydration
Wang-Daoji Aug 5, 2026
19c1a80
fix(settings): show BYOK usage detail copy (#155)
syzsunshine219 Aug 5, 2026
ef31740
fix: seed first-report chat instead of re-running the agent
Aug 5, 2026
23aa28d
Merge pull request #157 from dolnna/feat/onboarding-activation
hijzy Aug 5, 2026
c35fa1b
Merge pull request #2 from antalike/feat/onboarding-activation
dolnna Aug 5, 2026
38f5de3
Merge pull request #158 from dolnna/feat/onboarding-activation
hijzy Aug 5, 2026
6b76ae4
feat(onboarding): focus initial report on preferences and latest task
Aug 5, 2026
3304626
Merge remote-tracking branch 'upstream/dev-onboarding'
Aug 5, 2026
4bb3cfe
fix: correct goal timer and composer action
Wang-Daoji Aug 5, 2026
1190afc
feat(onboarding): prioritize first report memory handoff
Aug 5, 2026
3348f1a
Merge remote-tracking branch 'upstream/v1.0.5' into feature/agent-wy
Wang-Daoji Aug 5, 2026
adde22d
codeowners (#159)
ZongYue99 Aug 5, 2026
9622626
fix(onboarding): preserve first report context across agents
Aug 5, 2026
a579986
Merge pull request #160 from hijzy/main
hijzy Aug 5, 2026
00c0ba9
Merge branch 'feature/agent-wy' into feature/goal-mode-wy
Wang-Daoji Aug 5, 2026
8cd4d71
fix(onboarding): streamline first report handoff
Aug 5, 2026
0569504
Merge pull request #161 from hijzy/main
hijzy Aug 5, 2026
f7f37f1
fix(agent): report unchanged file mutations
Wang-Daoji Aug 5, 2026
4d69c39
test(agent): align invalid config expectation
Wang-Daoji Aug 5, 2026
e0033c0
fix: open WorkBuddy with task deeplink and /memmy-memory prompt (#162)
antalike Aug 5, 2026
6b94b32
Merge pull request #163 from MemTensor/dev-onboarding
hijzy Aug 5, 2026
9922a4f
fix(desktop): store Windows packaged data under install dir (#165)
wustzdy Aug 6, 2026
c0ae357
feat(timezone): honor user UTC offsets across memory
hijzy Aug 6, 2026
a148ed1
Merge pull request #166 from hijzy/main
hijzy Aug 6, 2026
45e9513
fix: streamline DAG snapshot projection
Wang-Daoji Aug 6, 2026
96162a1
Merge branch 'feature/agent-wy' into feature/goal-mode-wy
Wang-Daoji Aug 6, 2026
fb9da37
feat: add Pi and QwenWork memory sources
hijzy Aug 6, 2026
b9eb8cc
Merge pull request #167 from hijzy/main
hijzy Aug 6, 2026
8a52a03
fix: rename qwenwork display label
hijzy Aug 6, 2026
2c53f05
Merge pull request #168 from hijzy/main
hijzy Aug 6, 2026
c5833ee
feat: add preset Agent selector
hijzy Aug 6, 2026
e3424ee
Merge pull request #169 from hijzy/main
hijzy Aug 6, 2026
678aedb
release: Memmy v1.0.5 (#170)
syzsunshine219 Aug 6, 2026
1fcbba4
memmy-agent: Let every AI remember the same you - V1.0.5 (#173)
ZongYue99 Aug 6, 2026
5bb98ea
fix(desktop): keep conversation composer growing and scrollable (#171)
antalike Aug 6, 2026
4aae59d
fix(memory): show quota error title for 40309
hijzy Aug 6, 2026
90b062a
Merge pull request #175 from hijzy/main
hijzy Aug 6, 2026
1538e74
fix(memory): harden cross-agent onboarding
hijzy Aug 7, 2026
ba13bad
Merge pull request #177 from hijzy/main
hijzy Aug 7, 2026
fdc6d05
fix(memory): hide unverified agent drafts
hijzy Aug 7, 2026
cbc97db
Merge pull request #178 from hijzy/main
hijzy Aug 7, 2026
d77a461
merge: remaining upstream v1.0.5 changes
Wang-Daoji Aug 7, 2026
902b141
chore: record upstream v1.0.5 squash as merged
Wang-Daoji Aug 7, 2026
af74515
merge: sync upstream main after v1.0.5
Wang-Daoji Aug 7, 2026
3d1f7b4
test(desktop): align product tour initial tab
Wang-Daoji Aug 7, 2026
95f423a
chore(release): publish Memmy v1.0.5 (#174)
syzsunshine219 Aug 6, 2026
91f0566
merge: record upstream/main as integrated into v1.0.6
Wang-Daoji Aug 7, 2026
091182b
Merge pull request #179 from Wang-Daoji/codex/sync-main-into-v1.0.6
Wang-Daoji Aug 7, 2026
48c11f4
merge: integrate upstream v1.0.6
Wang-Daoji Aug 7, 2026
01db53c
fix(agent): finalize capped turns and queue follow-ups
Wang-Daoji Aug 9, 2026
d669008
feat(ui): compact goal controls into one line
Wang-Daoji Aug 9, 2026
330e1ac
fix(ui): expand goal objective into free space
Wang-Daoji Aug 9, 2026
5c247f0
fix(ui): format goal duration by time units
Wang-Daoji Aug 9, 2026
4ecab6f
feat: expose queued messages in chat
Wang-Daoji Aug 9, 2026
12c9dae
fix(desktop): mask account identifiers
hijzy Aug 10, 2026
6f9eba6
Merge pull request #184 from hijzy/main
hijzy Aug 10, 2026
4cc22b0
fix(backend): quote hook commands for Windows shells (#153)
DevMello Aug 10, 2026
32e09d2
fix(openai-api): report turn token usage (#181)
fancyboi999 Aug 10, 2026
34e899c
fix(desktop): set microphone usage description by package edition (#185)
antalike Aug 10, 2026
bddd6ef
feat: account byok multi model on byok (#186)
dolnna Aug 10, 2026
d6a7f78
feat: Enhance error handling and metadata propagation for model error…
EF1874 Aug 10, 2026
a861f2a
Merge pull request #152 from DevMello/fix/pattern-terms-json-noise
hijzy Aug 10, 2026
431d57b
Merge pull request #154 from DevMello/fix/hook-stop-capture-query
hijzy Aug 10, 2026
e53dd9f
feat(agent): share session queue across GUI and TUI
Wang-Daoji Aug 10, 2026
0623820
Merge remote-tracking branch 'upstream/v1.0.6' into byok
Wang-Daoji Aug 10, 2026
d05e006
Merge branch 'byok' into feature/goal-mode-wy
Wang-Daoji Aug 10, 2026
5574597
Merge pull request #187 from Wang-Daoji/feature/goal-mode-wy
Wang-Daoji Aug 10, 2026
610c3c4
feat(scripts): add Windows clear-all utility (#190)
syzsunshine219 Aug 11, 2026
29a1eeb
feat(analytics): track tools and connections outcomes to cloud GA4 (#…
antalike Aug 11, 2026
70b12a8
polish readme (#194)
ZongYue99 Aug 11, 2026
2e2a1ef
feat: add startup splash localization and HTML rendering (#193)
EF1874 Aug 11, 2026
5776476
fix(settings): show Windows status bar copy (#192)
syzsunshine219 Aug 11, 2026
248e997
fix(onboarding): hide first-report wrapper tags (#196)
syzsunshine219 Aug 11, 2026
dd7c2ac
fix(settings): default intl language selector to English (#195)
syzsunshine219 Aug 11, 2026
c445f32
polish readme (#197)
ZongYue99 Aug 11, 2026
f149b0e
feat: steer queued GUI messages into active turns
Wang-Daoji Aug 11, 2026
b63f20c
Merge branch 'byok' into v1.0.6
ZongYue99 Aug 11, 2026
0a450ae
perf: optimize memory imports and panel reads
hijzy Aug 11, 2026
f5a90da
Merge remote-tracking branch 'upstream/v1.0.6'
hijzy Aug 11, 2026
ec48873
fix(settings): restore controlled view props
ZongYue99 Aug 11, 2026
9db980d
fix(onboarding): harden report parsing and language choice
hijzy Aug 11, 2026
84d10f8
fix(dev): support legacy model defaults
ZongYue99 Aug 11, 2026
e079d34
Revert "Merge branch 'byok' into v1.0.6"
hijzy Aug 11, 2026
7e7e6c8
feat: add Goal workspace environment and Git evidence panel
ZongYue99 Aug 11, 2026
15298a3
fix: show project environment before task creation
ZongYue99 Aug 11, 2026
62e973b
fix: supervise local agent gateway from Electron
ZongYue99 Aug 11, 2026
908f022
fix: unify and harden workspace environment state
ZongYue99 Aug 11, 2026
5bfa035
feat: complete BYOK model catalog integration (#200)
EF1874 Aug 11, 2026
f75bfe5
feat: add interactive workspace environment controls
ZongYue99 Aug 11, 2026
ec6f03c
Merge remote-tracking branch 'upstream/byok' into zy_git_v1.0.7
ZongYue99 Aug 11, 2026
6337830
Merge pull request #203 from ZongYue99/zy_git_v1.0.7
ZongYue99 Aug 12, 2026
d106cee
Merge branch 'byok' into feature/goal-mode-wy
Wang-Daoji Aug 12, 2026
3b270ec
fix(asr): show OS-specific microphone permission guidance
Aug 12, 2026
8555233
Merge remote-tracking branch 'upstream/v1.0.7'
hijzy Aug 12, 2026
5c071ef
Merge pull request #202 from hijzy/main
hijzy Aug 12, 2026
6386ec8
fix: asr-microphone-permission
ZongYue99 Aug 12, 2026
53b3b7c
Revert "feat: add interactive workspace environment controls"
ZongYue99 Aug 12, 2026
e32ae5d
Revert "feat: add interactive workspace environment controls"
ZongYue99 Aug 12, 2026
6c015ee
Merge pull request #204 from Wang-Daoji/feature/goal-mode-wy
Wang-Daoji Aug 12, 2026
58f85d0
Route desktop UI analytics through cloud instead of gtag.
Aug 11, 2026
6fc7dd2
feat: tracking-cloud
ZongYue99 Aug 12, 2026
d4bcd6f
perf: optimize memory imports and panel reads
hijzy Aug 11, 2026
91b7306
fix(onboarding): harden report parsing and language choice
hijzy Aug 11, 2026
c05c140
fix(asr): show OS-specific microphone permission guidance
Aug 12, 2026
2100f97
merge: record upstream v1.0.7 as integrated into byok
Wang-Daoji Aug 12, 2026
d23154d
merge: integrate latest upstream v1.0.7
Wang-Daoji Aug 12, 2026
f00cbb5
Merge pull request #208 from MemTensor/byok
Wang-Daoji Aug 12, 2026
b984455
fix(memory): keep init config compatible with agent schema
Wang-Daoji Aug 12, 2026
e1d70f2
refactor(migrations): consolidate v1.0.7 migrations
Wang-Daoji Aug 12, 2026
5748529
Merge pull request #210 from Wang-Daoji/feature/v1.0.7-wy
Wang-Daoji Aug 12, 2026
d9c7a6c
fix(frontend): place goal above composer
Wang-Daoji Aug 12, 2026
38feba9
Merge pull request #211 from Wang-Daoji/feature/v1.0.7-wy
Wang-Daoji Aug 12, 2026
455667e
fix: show unavailable model message before send
EF1874 Aug 12, 2026
91ee991
fix: simplify custom model capability selection
EF1874 Aug 12, 2026
ec3c87e
fix(frontend): handle unavailable models and simplify capabilities
ZongYue99 Aug 12, 2026
a9c3702
feat: add account image-to-text fallback
Wang-Daoji Aug 12, 2026
3519905
test: align image fallback fixture
Wang-Daoji Aug 12, 2026
78310fd
Merge remote-tracking branch 'upstream/v1.0.7' into feature/v1.0.7-wy
Wang-Daoji Aug 12, 2026
46ea5dd
Merge pull request #213 from Wang-Daoji/feature/v1.0.7-wy
Wang-Daoji Aug 12, 2026
d84642b
fix(agent): correct session status reporting
Wang-Daoji Aug 12, 2026
8450a07
fix(models): constrain long model names
Aug 12, 2026
0faf568
fix(memory): open model configuration from errors
Aug 12, 2026
2276da9
fix(composer): reserve model action rail
Aug 12, 2026
09dfec1
fix(settings): disable deleting final BYOK connection
Aug 12, 2026
9f12579
fix(settings): retain connection test status
Aug 12, 2026
cb1d8f5
fix(settings): separate task model actions
Aug 12, 2026
b09d6d4
fix(settings): strengthen default model button
Aug 12, 2026
3e02ba5
fix(frontend): preserve new-chat model rejection
Aug 12, 2026
26dc31c
fix(frontend): reject empty Goal composer sends
Aug 12, 2026
92366f6
fix(frontend): delete shared model connections
Aug 12, 2026
a60fd41
fix: map provider names in delete confirmations
Aug 12, 2026
659679e
Merge remote-tracking branch 'upstream/v1.0.7' into feature/v1.0.7-wy
Wang-Daoji Aug 13, 2026
14f9e17
Merge pull request #226 from Wang-Daoji/feature/v1.0.7-wy
Wang-Daoji Aug 13, 2026
dc50bc3
feat: show token usage details inline
EF1874 Aug 13, 2026
3c215f8
Merge pull request #227 from EF1874/codex/inline-token-usage-v107
ZongYue99 Aug 13, 2026
25d6f18
fix: preserve single tildes in markdown temperature ranges
ZongYue99 Aug 13, 2026
771671d
fix: preserve single tildes in markdown temperature ranges
ZongYue99 Aug 13, 2026
6b40cd5
fix: map provider names in delete confirmations
ZongYue99 Aug 13, 2026
93d4152
Merge pull request #223 from syzsunshine219/codex/memmy-253-delete-mo…
syzsunshine219 Aug 13, 2026
c01032f
Merge pull request #222 from syzsunshine219/codex/memmy-248-goal-empt…
syzsunshine219 Aug 13, 2026
3b97109
Merge pull request #221 from syzsunshine219/codex/memmy-247-stale-mod…
syzsunshine219 Aug 13, 2026
9a7b113
Merge pull request #218 from syzsunshine219/codex/memmy-238-persist-c…
syzsunshine219 Aug 13, 2026
aa64715
Merge pull request #220 from syzsunshine219/codex/memmy-240-default-b…
syzsunshine219 Aug 13, 2026
fcc5ee3
Merge pull request #217 from syzsunshine219/codex/memmy-236-disable-l…
syzsunshine219 Aug 13, 2026
d8cc342
Merge pull request #215 from syzsunshine219/codex/memmy-250-model-set…
syzsunshine219 Aug 13, 2026
1feaa0f
Merge pull request #214 from syzsunshine219/codex/memmy-252-model-nam…
syzsunshine219 Aug 13, 2026
63244ae
Merge pull request #216 from syzsunshine219/codex/memmy-241-model-fie…
syzsunshine219 Aug 13, 2026
434764c
merge: resolve v1.0.7 conflicts for MEMMY-239
Aug 13, 2026
a8bbb97
Merge pull request #219 from syzsunshine219/codex/memmy-239-model-but…
syzsunshine219 Aug 13, 2026
dec52ce
fix(settings): repair BYOK model configuration (#229)
EF1874 Aug 13, 2026
06b1e06
fix memory retrieval filtering and skill timing
hijzy Aug 13, 2026
0d1fedb
Merge pull request #230 from hijzy/bug_fix
hijzy Aug 13, 2026
f6cd6d5
fix: remove GUI goal budget controls
Wang-Daoji Aug 13, 2026
6127cdb
Merge pull request #231 from Wang-Daoji/feature/v1.0.7-wy
Wang-Daoji Aug 13, 2026
39c6887
fix: repair goal controls and active steering (#232)
EF1874 Aug 13, 2026
5c539ca
fix: refine goal composer interactions (#233)
dolnna Aug 14, 2026
8fbdc85
feat: integrate Memmy with DeepSeek Harness
hijzy Aug 14, 2026
d8fc98b
Merge pull request #234 from hijzy/agent/deepseek-harness-plugin
hijzy Aug 14, 2026
251439d
fix: keep log card spacing consistent
hijzy Aug 14, 2026
399b10b
Merge pull request #235 from hijzy/agent/deepseek-harness-plugin
hijzy Aug 14, 2026
172b4c8
fix(settings): keep add config below drag region
Aug 14, 2026
ed21cf4
fix: package Memory workspace dependencies on Windows (#236)
EF1874 Aug 14, 2026
ff0e2cd
Merge pull request #237 from syzsunshine219/codex/memmy-262-add-confi…
syzsunshine219 Aug 14, 2026
6985327
Merge remote-tracking branch 'upstream/main' into release/v1.0.7
Aug 15, 2026
b5f9cf9
chore(release): prepare Memmy v1.0.7
Aug 15, 2026
9d17ef4
chore(release): satisfy v1.0.7 quality gates
Aug 15, 2026
fe0b59b
test(mochat): wait reliably for socket startup
Aug 15, 2026
b4c4e90
merge: sync main after v1.0.7 integration
Aug 17, 2026
8672686
chore(release): trim obsolete pre-integration fixes
Aug 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/release-notes/v1.0.7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Memmy v1.0.7

## Highlights

- Added long-running **Goals** that persist across turns, continue automatically, and expose clear pause, resume, edit, and clear controls with blocked and quota-limited states.
- Rebuilt model configuration around a multi-model workspace. You can add provider connections and models, assign models by capability, choose a conversation model per session, test connections, and switch away from unavailable configurations.
- Added built-in **DeepSeek Harness** integration, including local session discovery, history import, and installation of the Memmy Memory plugin and Skill.

## Agent and integration improvements

- Unified GUI and TUI work around the same session queue. Queued requests are visible in chat, labeled by source, removable, and can steer the active turn without losing their place.
- Improved Goal and queue reliability so capped turns finalize cleanly, queued follow-ups continue, and active steering remains consistent as turns change.
- Added an account-model image-to-text fallback when the main model cannot accept image input, with clearer errors when visual analysis or the selected model is unavailable.
- Improved model error handling so stale or removed selections are rejected before sending and users can open model configuration directly from the error state.

## Desktop and Memory improvements

- Expanded custom-model management with provider logos, persistent connection-test status, clearer default-model actions, safer deletion rules, and better handling of long model names and dense layouts.
- Moved detailed token usage inline in Settings, with breakdowns for platform and custom models, capabilities, input/output tokens, and individual models.
- Reduced irrelevant Memory recall by filtering low-confidence matches and preserving accurate relevance scores when rewritten-query results are merged.
- Improved large history imports and Memory dashboard reads with bounded processing batches and more efficient statistics queries.
- Added platform-specific microphone-permission guidance and fixed Markdown rendering so single tildes remain intact.

## Packaging and reliability

- Fixed Windows packages to include the local API contracts and migration modules required by the bundled Memory runtime.
- Added versioned upgrade migrations for existing model configurations and Goal state, reducing configuration loss and inconsistent state after updating.
167 changes: 104 additions & 63 deletions .github/workflows/github-draft-release-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,97 @@ jobs:
fi
echo "previous_tag=$previous_tag" >> "$GITHUB_OUTPUT"

- name: Build complete release change snapshot
if: ${{ steps.release.outputs.preflight_level == 'full' }}
env:
TARGET_SHA: ${{ steps.release.outputs.target_sha }}
PREVIOUS_TAG: ${{ steps.previous.outputs.previous_tag }}
run: |
set -euo pipefail
mkdir -p release-assets

compare_base="$PREVIOUS_TAG"
if [[ -z "$compare_base" ]]; then
compare_base="$(git rev-list --max-parents=0 "$TARGET_SHA" | head -n 1)"
fi
test -n "$compare_base"
base_sha="$(git rev-parse "$compare_base^{commit}")"

if ! git merge-base --is-ancestor "$base_sha" "$TARGET_SHA"; then
echo "::error title=Release history is not linear::$compare_base ($base_sha) is not an ancestor of $TARGET_SHA. Manual recovery: integrate the previous stable release into the release branch before retrying." >&2
exit 1
fi

if ! gh api --method GET \
"repos/${GITHUB_REPOSITORY}/compare/${base_sha}...${TARGET_SHA}?per_page=1&page=1" \
> release-assets/COMPARE_METADATA.json; then
echo "::error title=Release compare metadata failed::Could not validate ${base_sha}...${TARGET_SHA} against GitHub. Manual recovery: confirm both commits are reachable in the repository, then retry." >&2
exit 1
fi

node scripts/build-release-compare.mjs \
--base "$base_sha" \
--target "$TARGET_SHA" \
--repository "$GITHUB_REPOSITORY" \
--output release-assets/COMPARE.json

api_base="$(jq -r '.base_commit.sha // empty' release-assets/COMPARE_METADATA.json)"
api_merge_base="$(jq -r '.merge_base_commit.sha // empty' release-assets/COMPARE_METADATA.json)"
api_head="$(jq -r '.head_commit.sha // empty' release-assets/COMPARE_METADATA.json)"
api_status="$(jq -r '.status // empty' release-assets/COMPARE_METADATA.json)"
api_ahead="$(jq -r '.ahead_by // -1' release-assets/COMPARE_METADATA.json)"
api_behind="$(jq -r '.behind_by // -1' release-assets/COMPARE_METADATA.json)"
api_total="$(jq -r '.total_commits // -1' release-assets/COMPARE_METADATA.json)"
local_total="$(jq -r '.commits | length' release-assets/COMPARE.json)"
local_files="$(jq -r '.files | length' release-assets/COMPARE.json)"
local_head="$(jq -r '.head_commit.sha // empty' release-assets/COMPARE.json)"

if [[ "$api_base" != "$base_sha" || "$api_merge_base" != "$base_sha" || "$api_head" != "$TARGET_SHA" || "$local_head" != "$TARGET_SHA" ]]; then
echo "::error title=Release comparison identity mismatch::GitHub and the trusted checkout do not agree on the base, merge base, or target. Manual recovery: refresh the target checkout and retry without changing the tag." >&2
exit 1
fi
if [[ "$api_status" != "ahead" || "$api_behind" != "0" || "$api_ahead" != "$api_total" || "$local_total" != "$api_total" ]]; then
echo "::error title=Release comparison count mismatch::GitHub reports status=$api_status ahead=$api_ahead behind=$api_behind total=$api_total, while the trusted checkout contains $local_total commits. Manual recovery: inspect branch ancestry and API consistency before retrying." >&2
exit 1
fi

jq \
--argjson apiTotalCommits "$api_total" \
--argjson changedFileCount "$local_files" \
'.snapshot.remoteMetadataValidated = true
| .snapshot.apiTotalCommits = $apiTotalCommits
| .snapshot.changedFileCount = $changedFileCount' \
release-assets/COMPARE.json > release-assets/COMPARE.complete.json
mv release-assets/COMPARE.complete.json release-assets/COMPARE.json

: > release-assets/PULL_REQUESTS.jsonl
while IFS= read -r commit_sha; do
if ! gh api --paginate \
-H "Accept: application/vnd.github+json" \
"repos/${GITHUB_REPOSITORY}/commits/${commit_sha}/pulls?per_page=100" \
--jq '.[] | {
number,
title,
htmlUrl: .html_url,
mergedAt: .merged_at,
baseRef: .base.ref,
headRef: .head.ref
}' >> release-assets/PULL_REQUESTS.jsonl; then
echo "::error title=Pull request evidence failed::Could not fetch associated PRs for commit $commit_sha. Manual recovery: re-run after GitHub API recovers or inspect the commit manually." >&2
exit 1
fi
done < <(jq -r '.commits[].sha' release-assets/COMPARE.json)
jq -s 'unique_by(.number) | sort_by(.number)' \
release-assets/PULL_REQUESTS.jsonl > release-assets/PULL_REQUESTS.json

{
echo "## Complete release change snapshot"
echo
echo "- Commits: $local_total (cross-checked with GitHub)"
echo "- Changed files: $local_files (from the trusted local Git graph)"
echo "- Pull requests: $(jq 'length' release-assets/PULL_REQUESTS.json)"
} >> "$GITHUB_STEP_SUMMARY"

- name: Download and verify OSS artifacts
if: ${{ steps.release.outputs.preflight_level == 'full' }}
env:
Expand Down Expand Up @@ -364,49 +455,20 @@ jobs:
'{ok: true, needs_review: false, source: $source, manual_file: $file, warnings: []}' \
> release-assets/QUALITY_REPORT.json
else
compare_base="$PREVIOUS_TAG"
if [[ -z "$compare_base" ]]; then
compare_base="$(git rev-list --max-parents=0 "$TARGET_SHA" | head -n 1)"
fi
test -n "$compare_base"

if ! gh api "repos/${GITHUB_REPOSITORY}/compare/${compare_base}...${TARGET_SHA}" \
> release-assets/DRAFT_COMPARE.json; then
echo "::error title=Draft evidence compare failed::Could not compare ${compare_base}...${TARGET_SHA}. Manual recovery: confirm previous tag and target SHA are reachable, then re-run." >&2
exit 1
fi
total_commits="$(jq -r '.total_commits // (.commits | length)' release-assets/DRAFT_COMPARE.json)"
cp release-assets/COMPARE.json release-assets/DRAFT_COMPARE.json
cp release-assets/PULL_REQUESTS.json release-assets/DRAFT_PULL_REQUESTS.json
total_commits="$(jq -r '.total_commits' release-assets/DRAFT_COMPARE.json)"
received_commits="$(jq -r '.commits | length' release-assets/DRAFT_COMPARE.json)"
compare_head="$(jq -r '.head_commit.sha // empty' release-assets/DRAFT_COMPARE.json)"
if [[ "$total_commits" != "$received_commits" ]]; then
echo "::error title=Draft evidence is truncated::GitHub returned $received_commits of $total_commits commits. Manual recovery: reduce release scope or inspect compare evidence manually before retrying." >&2
echo "::error title=Draft evidence snapshot is incomplete::The trusted snapshot records $received_commits of $total_commits commits. Manual recovery: rebuild the complete local release change snapshot before retrying." >&2
exit 1
fi
if [[ "$compare_head" != "$TARGET_SHA" ]]; then
echo "::error title=Draft evidence target mismatch::Compare head $compare_head does not match target $TARGET_SHA. Manual recovery: verify the previous tag and release target." >&2
exit 1
fi

: > release-assets/DRAFT_PULL_REQUESTS.jsonl
while IFS= read -r commit_sha; do
if ! gh api \
-H "Accept: application/vnd.github+json" \
"repos/${GITHUB_REPOSITORY}/commits/${commit_sha}/pulls" \
--jq '.[] | {
number,
title,
htmlUrl: .html_url,
mergedAt: .merged_at,
baseRef: .base.ref,
headRef: .head.ref
}' >> release-assets/DRAFT_PULL_REQUESTS.jsonl; then
echo "::error title=Draft PR evidence failed::Could not fetch associated PRs for commit $commit_sha. Manual recovery: re-run after GitHub API recovers or inspect the commit manually." >&2
exit 1
fi
done < <(jq -r '.commits[].sha' release-assets/DRAFT_COMPARE.json)
jq -s 'unique_by(.number) | sort_by(.number)' \
release-assets/DRAFT_PULL_REQUESTS.jsonl > release-assets/DRAFT_PULL_REQUESTS.json

jq -Rn '
[inputs
| select(length > 0)
Expand Down Expand Up @@ -668,49 +730,24 @@ jobs:
fi
test -n "$compare_base"

if ! gh api "repos/${GITHUB_REPOSITORY}/compare/${compare_base}...${TARGET_SHA}" \
> release-assets/COMPARE.json; then
echo "::error title=Release compare failed::Could not compare ${compare_base}...${TARGET_SHA}. Manual recovery: confirm previous tag and target SHA are reachable, then re-run." >&2
if [[ ! -s release-assets/COMPARE.json || ! -s release-assets/PULL_REQUESTS.json ]]; then
echo "::error title=Complete release snapshot is missing::The shared comparison or pull-request evidence was not produced. Manual recovery: rebuild the complete release change snapshot before retrying." >&2
exit 1
fi

total_commits="$(jq -r '.total_commits // (.commits | length)' release-assets/COMPARE.json)"
total_commits="$(jq -r '.total_commits' release-assets/COMPARE.json)"
received_commits="$(jq -r '.commits | length' release-assets/COMPARE.json)"
changed_file_count="$(jq -r '.files | length' release-assets/COMPARE.json)"
compare_head="$(jq -r '.head_commit.sha // empty' release-assets/COMPARE.json)"
if [[ "$total_commits" != "$received_commits" ]]; then
echo "::error title=Release compare is truncated::GitHub returned $received_commits of $total_commits commits. Manual recovery: reduce release scope or inspect compare evidence manually before retrying." >&2
exit 1
fi
if [[ "$changed_file_count" -ge 300 ]]; then
echo "::error title=Release diff is too large::Compare contains $changed_file_count changed files. Manual recovery: split the release or perform manual evidence review." >&2
echo "::error title=Release snapshot is incomplete::The trusted snapshot records $received_commits of $total_commits commits. Manual recovery: rebuild the complete local release change snapshot before retrying." >&2
exit 1
fi
if [[ "$compare_head" != "$TARGET_SHA" ]]; then
echo "::error title=Release compare target mismatch::Compare head $compare_head does not match target $TARGET_SHA. Manual recovery: verify the previous tag and release target." >&2
exit 1
fi

: > release-assets/PULL_REQUESTS.jsonl
while IFS= read -r commit_sha; do
if ! gh api \
-H "Accept: application/vnd.github+json" \
"repos/${GITHUB_REPOSITORY}/commits/${commit_sha}/pulls" \
--jq '.[] | {
number,
title,
htmlUrl: .html_url,
mergedAt: .merged_at,
baseRef: .base.ref,
headRef: .head.ref
}' >> release-assets/PULL_REQUESTS.jsonl; then
echo "::error title=Pull request evidence failed::Could not fetch associated PRs for commit $commit_sha. Manual recovery: re-run after GitHub API recovers or inspect the commit manually." >&2
exit 1
fi
done < <(jq -r '.commits[].sha' release-assets/COMPARE.json)
jq -s 'unique_by(.number) | sort_by(.number)' \
release-assets/PULL_REQUESTS.jsonl > release-assets/PULL_REQUESTS.json

jq -Rn '
[inputs
| select(length > 0)
Expand Down Expand Up @@ -761,7 +798,8 @@ jobs:
status: $compare[0].status,
aheadBy: $compare[0].ahead_by,
behindBy: $compare[0].behind_by,
totalCommits: $compare[0].total_commits
totalCommits: $compare[0].total_commits,
snapshot: $compare[0].snapshot
},
commits: ($compare[0].commits | map({
sha,
Expand Down Expand Up @@ -814,6 +852,9 @@ jobs:
release-assets/RELEASE_NOTES.md
release-assets/RELEASE_NOTES_SOURCE.json
release-assets/QUALITY_REPORT.json
release-assets/COMPARE_METADATA.json
release-assets/COMPARE.json
release-assets/PULL_REQUESTS.json
release-assets/RELEASE_EVIDENCE.json
release-assets/MD5SUMS.txt
release-assets/SHA256SUMS.txt
Expand Down
2 changes: 1 addition & 1 deletion App/backend/src/project-version.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/** Generated from the root package.json by scripts/sync-project-version.mjs. */
export const MEMMY_VERSION = "1.0.5";
export const MEMMY_VERSION = "1.0.7";
15 changes: 15 additions & 0 deletions App/backend/src/tests/project-version.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
import { describe, expect, it } from "vitest";
import { MEMMY_VERSION } from "../project-version.js";

describe("project version", () => {
it("matches the root release manifest", () => {
const rootManifest = JSON.parse(
readFileSync(resolve(import.meta.dirname, "../../../../package.json"), "utf8"),
);

expect(MEMMY_VERSION).toBe(rootManifest.version);
expect(MEMMY_VERSION).toMatch(/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/);
});
});
4 changes: 2 additions & 2 deletions App/memmy-agent/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion App/memmy-agent/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "memmy-agent",
"version": "1.0.6",
"version": "1.0.7",
"description": "TypeScript refactor of memmy's agent runtime.",
"type": "module",
"main": "./dist/index.js",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ function channel(config: Record<string, any>, bus = new MessageBus()): MochatCha
}

async function waitForSocket(): Promise<any> {
for (let i = 0; i < 50; i += 1) {
if (socketMocks.sockets[0]) return socketMocks.sockets[0];
await new Promise((resolve) => setImmediate(resolve));
}
throw new Error("socket.io client was not created");
await vi.waitFor(
() => expect(socketMocks.sockets[0]).toBeDefined(),
{ timeout: 5000, interval: 10 },
);
return socketMocks.sockets[0];
}

afterEach(() => {
Expand Down
2 changes: 1 addition & 1 deletion App/shell/desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@memmy/desktop",
"version": "1.0.6",
"version": "1.0.7",
"private": true,
"type": "module",
"description": "Memmy desktop client.",
Expand Down
2 changes: 1 addition & 1 deletion Memory/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@memmy/memory",
"version": "1.0.6",
"version": "1.0.7",
"private": true,
"type": "module",
"main": "./dist/src/index.js",
Expand Down
2 changes: 1 addition & 1 deletion Memory/src/cli/npm/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@memtensor/memmy-memory-cli",
"version": "1.0.6",
"version": "1.0.7",
"description": "Memmy Memory CLI for local agent memory.",
"type": "module",
"bin": {
Expand Down
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "memmy-agent",
"version": "1.0.6",
"version": "1.0.7",
"private": true,
"type": "module",
"description": "Local-first agent memory substrate with desktop and CLI surfaces.",
Expand Down
Loading
Loading