Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
30713c8
fix(providers): raise default model call timeout to 300s
xuzhiqin1990 Sep 19, 2026
a88abc5
feat(models): add Custom protocols, thinking budget, and image declar…
Wang-Daoji Sep 14, 2026
35c53cb
Let memory summary and evolution call Bedrock Converse and OpenAI Res…
Wang-Daoji Sep 29, 2026
284639b
Add official thinking levels for the September model releases.
Wang-Daoji Sep 29, 2026
cddc65b
Remove the brain icon from the thinking mode toggle.
Wang-Daoji Sep 29, 2026
cb48326
Explain custom model capability options on hover.
Wang-Daoji Sep 29, 2026
2560b36
Save Custom as its own provider and route each protocol to the matchi…
Wang-Daoji Sep 29, 2026
776753b
Let Custom connection tests follow the selected protocol.
Wang-Daoji Sep 29, 2026
a1fae2a
Send max_completion_tokens for newer OpenAI model names on Custom Cha…
Wang-Daoji Sep 29, 2026
f37f21f
Hide thinking for OpenAI Chat Completions on newer reasoning models, …
Wang-Daoji Sep 30, 2026
407cf02
Send reasoning_effort none for OpenAI Chat Completions when newer rea…
Wang-Daoji Sep 30, 2026
85893b7
Send reasoning_effort none on Chat Completions for any GPT or o-serie…
Wang-Daoji Sep 30, 2026
1785faf
Recommend the Responses API for GPT models in the Custom thinking hin…
Wang-Daoji Sep 30, 2026
69cfa4c
Give the Custom provider its own puzzle mark so it is no longer shown…
Wang-Daoji Sep 30, 2026
4e4c5fc
feat: package agent runtime for npm
ZongYue99 Oct 9, 2026
2f934f5
chore: relocate agent npm package output
ZongYue99 Oct 9, 2026
019cce2
fix: sync generated agent npm package version
ZongYue99 Oct 9, 2026
8f9c428
fix(chat): keep copy actions on completed historical replies
Oct 9, 2026
a69fe87
fix: reuse degraded development memory service
Oct 9, 2026
d862a1c
Merge remote-tracking branch 'upstream/v1.2.2' into fix-bug-476-memor…
Oct 10, 2026
37598d5
fix: forward native progress events over SSE
ZongYue99 Oct 11, 2026
256b369
Merge pull request #4 from ZongYue99/main
ZongYue99 Oct 12, 2026
3a6adec
Merge branch 'zy_npm_1008' of https://github.com/ZongYue99/memmy-agen…
ZongYue99 Oct 12, 2026
c3b8162
fix: 支持 apply_patch 工作区内绝对路径
Oct 12, 2026
02e0bad
Merge pull request #613 from ZongYue99/zy_npm_1008
ZongYue99 Oct 12, 2026
22f542f
fix: add correlated API and model latency diagnostics
ZongYue99 Oct 12, 2026
3691ca6
Merge pull request #490 from xuzhiqin1990/fix/model-call-timeout-300s
syzsunshine219 Oct 12, 2026
8f1b045
Merge pull request #596 from zxr19980213/codex/fix-historical-reply-c…
syzsunshine219 Oct 12, 2026
27e0418
fix: wake exec waits on process completion and buffered output
yxyi123 Oct 12, 2026
e48fe20
Merge remote-tracking branch 'upstream/v1.2.3' into fix/memmy-675-exe…
yxyi123 Oct 12, 2026
ca38419
fix: locate bundled Codex CLI for hook trust installation
Orsted290 Oct 10, 2026
f0bd53b
fix: preserve hook removals and roll back failed Codex trust
Orsted290 Oct 12, 2026
516ba15
fix: allow models to share identical endpoints
Orsted290 Oct 12, 2026
b5ac066
fix: reuse saved BYOK endpoint in setup connection tests
Orsted290 Oct 13, 2026
b273fc5
Merge pull request #620 from Orsted290/fix-codex-hook-repeat-install-…
origami-chen Oct 13, 2026
b433ef3
fix: apply explicit API model selection to resumed sessions
ZongYue99 Oct 13, 2026
1d09b69
fix: 拒绝绝对路径中的父级跳转
Oct 13, 2026
440c289
Merge remote-tracking branch 'upstream/v1.2.3' into fix-671-apply-pat…
Oct 13, 2026
980ef05
Merge pull request #600 from jia030928/fix-bug-476-memory-port-conflict
origami-chen Oct 13, 2026
94e3eb9
fix: 恢复登录账号的内置模型
Oct 10, 2026
11c5ef9
Merge pull request #619 from MemTensor/main
syzsunshine219 Oct 13, 2026
0b83e1f
Merge remote-tracking branch 'upstream/v1.2.4' into fix-builtin-model…
Oct 13, 2026
3ba189a
fix: 修复登录账号内置模型配置恢复
Oct 13, 2026
516e2df
fix: 保留账号模型恢复结果并校验账号一致性
Oct 14, 2026
679b0ec
fix: 保留补丁规范化路径中的文件名空格
Oct 14, 2026
4557c6e
Merge remote-tracking branch 'upstream/v1.2.4' into fix-671-apply-pat…
Oct 14, 2026
daf6bc7
Merge pull request #612 from jia030928/fix-671-apply-patch-absolute-path
origami-chen Oct 14, 2026
43ead00
fix: trim API keys when matching pending presets
Orsted290 Oct 14, 2026
f83cdf1
fix: build bundled agent and memory runtimes in Memmy
ZongYue99 Oct 14, 2026
248bbaf
fix: deduplicate native source captures across account changes
Orsted290 Oct 10, 2026
4d38f01
test: clarify native conversation scope regression name
Orsted290 Oct 10, 2026
0e48c98
fix: collapse duplicate cross-account L1 recall candidates
Orsted290 Oct 14, 2026
a892b26
Merge pull request #622 from Orsted290/fix-duplicate-openai-endpoint-…
origami-chen Oct 14, 2026
15164f9
style(desktop): place social sign-in below email login
dolnna Oct 14, 2026
b041201
feat(desktop): refine model thinking controls and custom capabilities
dolnna Oct 14, 2026
9a08615
Merge pull request #1 from Wang-Daoji/codex/provider-thinking-controls
Wang-Daoji Oct 14, 2026
f2e4f07
Let external plugins participate in the agent lifecycle
penggaolai Oct 14, 2026
4753a6b
feat: build and verify runtime artifacts for all platforms
ZongYue99 Oct 14, 2026
6cb5ca4
chore: merge upstream v1.2.4
ZongYue99 Oct 14, 2026
1559374
Merge pull request #631 from ZongYue99/zy_runtime_artifacts
ZongYue99 Oct 14, 2026
7ec2e5e
Keep installed Memmy CLI directly executable
penggaolai Oct 14, 2026
f030dba
feat(auth): enable Google and GitHub social login
Oct 14, 2026
3512c27
Integrate upstream v1.2.4 updates into the customized agent branch
penggaolai Oct 14, 2026
374a4e5
feat: build all Memory runtime platforms with one command
ZongYue99 Oct 14, 2026
7db6ad6
fix(runtime): skip third-party install scripts when packaging the age…
Oct 14, 2026
fff7913
Merge pull request #635 from EF1874/fix/windows-runtime-package-posti…
ZongYue99 Oct 14, 2026
5a756c1
Merge pull request #634 from whipser030/v1.2.4-niu
ZongYue99 Oct 14, 2026
5dcbd11
Merge pull request #637 from antalike/codex/intl-social-login-style
dolnna Oct 14, 2026
195a8fa
fix: 保留迁移后的模型模式并刷新记忆配置
Oct 15, 2026
b9871f4
Merge remote-tracking branch 'upstream/v1.2.4' into fix-builtin-model…
Oct 15, 2026
0192ab8
fix: guard embedding inputs and isolate rejected batches (MEMMY-488)
whqf1123 Oct 10, 2026
ecb2c74
Merge pull request #624 from jia030928/fix-builtin-models-login-v1.2.3
origami-chen Oct 15, 2026
b972ec1
fix: delete generated spans with task memory
Orsted290 Oct 15, 2026
2b8f186
fix: emit SHA-256 checksum files for Agent runtime packages
ZongYue99 Oct 15, 2026
a8dbb8a
Merge remote-tracking branch 'upstream/v1.2.4' into fix-memory-task-s…
Orsted290 Oct 15, 2026
d698dd4
fix: clarify missing ASR model error
Oct 15, 2026
ff70711
Merge pull request #643 from memory-lee/codex/fix-asr-model-not-confi…
ZongYue99 Oct 15, 2026
bb21412
fix: remove whole-turn deadlines from Memmy API
ZongYue99 Oct 15, 2026
b596123
fix: cancel Memmy turns only through explicit stop requests
ZongYue99 Oct 15, 2026
30a1199
fix(desktop): render skill markdown and restore slash command suggest…
Oct 15, 2026
16920de
fix(desktop): limit command palette height and surface stop in search
Oct 15, 2026
1755344
fix(desktop): match slash suggestions by command name prefix
Oct 15, 2026
7de08d5
feat(desktop): complete slash subcommands and model presets
Oct 15, 2026
117f7b2
fix(desktop): expand exact commands and place closest suggestions last
Oct 15, 2026
1cebfe0
fix(desktop): match commands and subcommands as flat candidates
Oct 15, 2026
5140cdd
Merge remote-tracking branch 'origin/v1.2.4' into codex/skill-markdow…
Oct 15, 2026
afece27
Merge pull request #636 from ZongYue99/zy_runtime_artifacts
ZongYue99 Oct 15, 2026
7a121e3
Merge pull request #618 from yxyi123/fix/memmy-675-exec-wakeup
origami-chen Oct 15, 2026
4d3228f
test: distinguish unexpected memory endpoint fixtures
Oct 15, 2026
896ca85
test(windows): model non-Memory health responses
Orsted290 Oct 16, 2026
533d91e
Merge pull request #647 from GUANGDIJI/codex/skill-markdown-display
ZongYue99 Oct 16, 2026
083e5e1
fix: 统一 BYOK 显示、测试与保存的凭据来源
Orsted290 Oct 16, 2026
19ad8c9
Merge remote-tracking branch 'upstream/v1.2.4' into fix/memmy-488-emb…
whqf1123 Oct 16, 2026
3a0d9a4
fix: refine embedding failure isolation and empty chunk handling (MEM…
whqf1123 Oct 16, 2026
2184ff4
fix: 统一设置页凭据校验并保留连续复用关系
Orsted290 Oct 16, 2026
c6061ee
Merge pull request #639 from Orsted290/fix-cross-account-recall-dedup…
origami-chen Oct 16, 2026
58543d4
fix: 同步 v1.2.4 并解决 BYOK 凭据映射冲突
Orsted290 Oct 16, 2026
356a779
fix: find task spans by their own ownership links
Orsted290 Oct 16, 2026
b633dfa
Merge remote-tracking branch 'upstream/v1.2.4' into fix-memory-task-s…
Orsted290 Oct 16, 2026
7e2607d
Merge pull request #641 from whqf1123/fix/memmy-488-embedding-guard-v124
origami-chen Oct 16, 2026
e1683a6
Merge remote branch origin/fix-memory-task-span-delete
Orsted290 Oct 16, 2026
5a0951f
fix: 恢复记忆模型编辑后的连接重测并隔离卡片请求
Orsted290 Oct 17, 2026
4febd21
Merge branch 'v1.2.4' of github.com:MemTensor/memmy-agent into fix-by…
Orsted290 Oct 17, 2026
1fe1a6f
fix: isolate onboarding connection test responses
Orsted290 Oct 17, 2026
e00425f
test: cover BYOK requests completing after page unmount
Orsted290 Oct 17, 2026
4dd3d72
Merge pull request #623 from Orsted290/fix-byok-onboarding-key-test
origami-chen Oct 18, 2026
439ec88
Merge pull request #642 from Orsted290/fix-memory-task-span-delete
origami-chen Oct 18, 2026
9a86f50
Register DeepSeek-V4.1-Flash-1017 so exact model lookups keep its tok…
Wang-Daoji Oct 19, 2026
5d0253f
Merge remote-tracking branch 'upstream/v1.2.4' into feature/update-mo…
Wang-Daoji Oct 19, 2026
5326b30
Merge pull request #665 from Wang-Daoji/feature/update-model-ability-…
Wang-Daoji Oct 19, 2026
6e93119
Merge remote-tracking branch 'upstream/main' into cursor/provider-and…
Wang-Daoji Oct 19, 2026
7cba17e
Merge v1.2.4 into main for PR #668
Oct 19, 2026
98f629b
fix: close PR 668 merge verification
Oct 20, 2026
5846951
Merge pull request #671 from MemTensor/pr-668-resolve
syzsunshine219 Oct 20, 2026
dcca767
fix: 兼容 OpenCode V2 并更新已有记忆插件
Oct 20, 2026
af9319e
Merge remote-tracking branch 'upstream/v1.2.4' into fix-678-opencode-…
Oct 20, 2026
8abb13b
Merge remote-tracking branch 'upstream/v1.2.4' into cursor/provider-a…
Wang-Daoji Oct 20, 2026
f0b6dd9
Merge pull request #680 from Wang-Daoji/cursor/provider-and-thinking-…
Wang-Daoji Oct 20, 2026
cf9db79
fix(wechat): clarify Memmy Full Disk Access permission copy
Oct 20, 2026
216e3ce
fix: 修复 OpenCode V2 连续对话记忆漏采集
Oct 20, 2026
d365096
Merge remote-tracking branch 'upstream/v1.2.4' into fix-678-opencode-…
Oct 20, 2026
9a65ee3
Merge pull request #682 from Grace-dev11/codex/wechat-full-disk-acces…
syzsunshine219 Oct 20, 2026
57acb2a
fix: 退出时取消 OpenCode 采集重试等待
Oct 20, 2026
2ca30e7
fix(wechat): retry snapshots after transient source changes
endxxxx Oct 20, 2026
2853f20
Merge pull request #683 from MemTensor/codex/fix-wechat-snapshot-retry
endxxxx Oct 20, 2026
6a3b011
fix: 补齐 OpenCode 生命周期与迁移记忆采集
Oct 20, 2026
8580b72
Merge remote-tracking branch 'upstream/v1.2.4' into fix-678-opencode-…
Oct 20, 2026
a4b869c
fix: 保持 L3 暂不可用时的 OpenCode 记忆采集
Oct 20, 2026
7001b4f
test: 验证 OpenCode 真实扫描先到时的采集去重
Oct 20, 2026
67bc48c
Merge pull request #679 from jia030928/fix-678-opencode-v2-compat
origami-chen Oct 20, 2026
26fd17f
chore(release): prepare v1.2.4 metadata
Oct 20, 2026
1c85772
fix(release): align provider lint and model key copy
Oct 20, 2026
b0feb21
fix(mac): collect task native agents when desktop exits
Oct 21, 2026
fe02b11
fix(memory): recover History quotes from retained source text
Oct 21, 2026
c41b978
fix(installer): let non-C Windows installs continue after an explicit…
Oct 21, 2026
09e9c7e
Merge pull request #698 from Grace-dev11/codex/bugfix-macos-exit-hist…
syzsunshine219 Oct 21, 2026
ab7d746
fix: declare fzstd for the Memmy agent runtime package
Oct 22, 2026
b1e4276
Merge pull request #711 from memory-lee/fix/memmy-runtime-fzstd
ZongYue99 Oct 22, 2026
9693d25
fix(cli): retry transient gateway bootstrap 503
Oct 22, 2026
134033a
Merge pull request #692 from MemTensor/release/v1.2.4
syzsunshine219 Oct 22, 2026
8446265
fix(release): retry GitHub PR metadata snapshot
Oct 22, 2026
d56ad47
Merge pull request #715 from MemTensor/codex/fix-draft-release-snapshot
syzsunshine219 Oct 22, 2026
30d206c
fix(release): avoid paginated PR metadata lookup
Oct 22, 2026
f8e95ab
Merge pull request #716 from MemTensor/codex/fix-draft-release-pagina…
syzsunshine219 Oct 22, 2026
2cb4490
fix(release): retry commit PR API with curl
Oct 22, 2026
31e45f3
Merge pull request #717 from MemTensor/codex/fix-draft-release-curl
syzsunshine219 Oct 22, 2026
ce188bf
docs(release): translate v1.2.4 notes to English
Oct 22, 2026
74b26fc
Merge pull request #722 from MemTensor/codex/release-v1.2.4-english-n…
syzsunshine219 Oct 23, 2026
cda6424
Resolve main to v1.2.5 synchronization conflicts
Oct 23, 2026
92e3e5b
test(byok): await completed credential catalog publication
Oct 23, 2026
5eb3d6b
fix: restore Full baseline for v1.2.5 sync
Oct 23, 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
19 changes: 19 additions & 0 deletions .github/release-notes/v1.2.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Memmy v1.2.4

## Highlights

- Improved OpenCode V2 conversation capture for continuous sessions and real-scan-first flows, with lifecycle completion, deduplication, and recoverable behavior while L3 is unavailable. WeChat capture now retries transient changes and cancels pending collection work on exit.
- Unified credential sources and account projection for BYOK and built-in model configuration, isolated connection-test responses after page unload, and preserved migrated model modes. Added model-thinking levels, token budgets, protocol selection, vision capability, and DeepSeek-V4.1-Flash-1017 capability registration.
- Improved Agent runtime Hook lifecycle handling, execution waits, OpenAI-compatible requests, model-error diagnostics, and tool-result handling. Explicit stop now replaces whole-turn timeout behavior, and resumed sessions continue with an explicit model selection.

## Agent and Desktop improvements

- Improved Memory reliability with cross-account candidate deduplication, Embedding input validation, failed-batch isolation, task-memory deletion, capture boundaries, and runtime builds with checksums for each platform artifact.
- Expanded the desktop experience with slash-command and subcommand suggestions, skill Markdown display, social-login entry points, model-thinking controls, and browser/computer-history authorization and recovery paths. Windows History and WeChat flows retain visible failures and their privacy boundaries.
- Unified Agent and Memory multi-platform runtime builds, version synchronization, and dependency-install scripts while keeping source, installer, and runtime metadata aligned.

## Upgrade notes

- Memmy Desktop and Agent are version `1.2.4`.
- The bundled Memory service, viewer, and CLI remain independently versioned. This file records the v1.2.4 product scope only.
- Real installation, in-place upgrade, and signed-release validation remain separate release gates. Full Harness regression, independent review, Draft PR, merge, signed tag, packaging, and publication are also separate gates.
47 changes: 35 additions & 12 deletions .github/workflows/github-draft-release-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -354,19 +354,42 @@ jobs:
mv release-assets/COMPARE.complete.json release-assets/COMPARE.json

: > release-assets/PULL_REQUESTS.jsonl
api_url="${GITHUB_API_URL:-https://api.github.com}"
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
pr_response="release-assets/PR_${commit_sha}.json"
pr_success="false"
for attempt in 1 2 3; do
rm -f "$pr_response"
http_status="$(
curl --silent --show-error --location \
--retry 4 --retry-delay 2 --retry-max-time 30 --retry-all-errors \
--connect-timeout 10 --max-time 45 \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer ${GH_TOKEN}" \
--header "X-GitHub-Api-Version: 2022-11-28" \
--output "$pr_response" \
--write-out '%{http_code}' \
"$api_url/repos/${GITHUB_REPOSITORY}/commits/${commit_sha}/pulls?per_page=100" || true
)"
if [[ "$http_status" == "200" ]] \
&& jq -e 'type == "array"' "$pr_response" >/dev/null 2>&1; then
jq -c '.[] | {
number,
title,
htmlUrl: .html_url,
mergedAt: .merged_at,
baseRef: .base.ref,
headRef: .head.ref
}' "$pr_response" >> release-assets/PULL_REQUESTS.jsonl
pr_success="true"
break
fi
echo "::warning title=Retrying pull request evidence::GitHub PR metadata for commit $commit_sha was unavailable or malformed (HTTP $http_status, attempt $attempt/3)." >&2
sleep "$((attempt * 2))"
done
rm -f "$pr_response"
if [[ "$pr_success" != "true" ]]; then
echo "::error title=Pull request evidence failed::Could not fetch valid associated PRs for commit $commit_sha after 3 attempts. 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)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/memory-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
version:
description: Memory version (X.Y.Z)
required: true
default: 2.1.6
default: 2.1.7
push:
tags:
- "memory-v*"
Expand Down
101 changes: 101 additions & 0 deletions .github/workflows/runtime-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Agent and Memory runtime artifacts
run-name: runtime-artifacts-${{ github.ref_name }}

on:
workflow_dispatch:
inputs:
runtime:
description: Runtime packages to build
type: choice
options: [both, memory]
default: both
push:
branches: [zy_memory_runtime_*]
permissions:
contents: read

jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- target: darwin-arm64
runner: macos-14
arch: arm64
- target: darwin-x64
runner: macos-15-intel
arch: x64
- target: linux-arm64
runner: ubuntu-24.04-arm
arch: arm64
- target: linux-x64
runner: ubuntu-24.04
arch: x64
- target: windows-arm64
runner: windows-11-arm
arch: arm64
- target: windows-x64
runner: windows-2025
arch: x64
runs-on: ${{ matrix.runner }}
timeout-minutes: 45
defaults:
run:
shell: bash
env:
COPYFILE_DISABLE: '1'
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1'
ELECTRON_SKIP_BINARY_DOWNLOAD: '1'
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: 26.0.0
architecture: ${{ matrix.arch }}
cache: npm
- name: Install build dependencies
run: npm ci --no-audit --no-fund
- name: Install Agent build dependencies
if: github.event_name == 'workflow_dispatch' && inputs.runtime != 'memory'
run: npm --prefix App/memmy-agent install --ignore-scripts --no-audit --no-fund
- name: Build Agent runtime
if: github.event_name == 'workflow_dispatch' && inputs.runtime != 'memory'
run: npm run agent:runtime:package -- --target "${{ matrix.target }}" --output "$RUNNER_TEMP/runtime-artifacts"
- name: Build Memory runtime
run: npm run runtime:package -w @memmy/memory -- --target "${{ matrix.target }}" --output "$RUNNER_TEMP/runtime-artifacts"
- name: Verify unpacked runtimes and native dependencies
run: node scripts/internal/shared/verify-runtime-artifacts.mjs "$RUNNER_TEMP/runtime-artifacts" "${{ matrix.target }}" "${{ inputs.runtime || 'memory' }}"
- uses: actions/upload-artifact@v4
with:
name: runtimes-${{ matrix.target }}
path: ${{ runner.temp }}/runtime-artifacts/*
if-no-files-found: error
compression-level: 0
retention-days: 14

collect:
needs: build
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: 26.0.0
- uses: actions/download-artifact@v4
with:
pattern: runtimes-*
path: runtime-input
- name: Collect runtime archives with checksums
run: node scripts/internal/shared/collect-runtime-artifacts.mjs runtime-input runtime-output "${{ inputs.runtime || 'memory' }}"
- uses: actions/upload-artifact@v4
with:
name: all-platform-runtimes
path: runtime-output/*
if-no-files-found: error
compression-level: 0
retention-days: 14
63 changes: 62 additions & 1 deletion .github/workflows/windows-computer-history-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
paths:
- ".github/workflows/windows-computer-history-validation.yml"
- "App/native-computer-history/**"
- "App/native-computer-use/**"
- "App/memmy-agent/src/tools/computer-history/**"
- "App/memmy-agent/tests/tools/computer-history/**"
- "App/memmy-agent/scripts/copy-build-assets.mjs"
Expand All @@ -24,12 +25,15 @@ jobs:
validate:
runs-on: windows-2025
timeout-minutes: 30
env:
EXPECTED_SOURCE_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
defaults:
run:
shell: pwsh
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
persist-credentials: false
- uses: actions/setup-node@v4
with:
Expand All @@ -39,7 +43,9 @@ jobs:
- uses: actions/setup-go@v5
with:
go-version: "1.22.12"
cache-dependency-path: App/native-computer-history/apps/OpenComputerHistoryWindows/go.mod
cache-dependency-path: |
App/native-computer-history/apps/OpenComputerHistoryWindows/go.mod
App/native-computer-use/apps/OpenComputerUseWindows/go.mod
- name: Require Windows 11
run: |
$ErrorActionPreference = 'Stop'
Expand All @@ -51,6 +57,7 @@ jobs:
- name: Install standalone agent dependencies
run: npm ci --prefix App/memmy-agent
- name: Validate native protocol and lifecycle without desktop access
id: native_history_tests
run: |
$ErrorActionPreference = 'Stop'
Push-Location App/native-computer-history/apps/OpenComputerHistoryWindows
Expand All @@ -62,6 +69,15 @@ jobs:
go vet -unsafeptr=false ./...
if ($LASTEXITCODE -ne 0) { throw 'Native recorder vet failed' }
} finally { Pop-Location }
- name: Validate native Computer Use Go module
id: native_computer_use_tests
run: |
$ErrorActionPreference = 'Stop'
Push-Location App/native-computer-use/apps/OpenComputerUseWindows
try {
go test ./...
if ($LASTEXITCODE -ne 0) { throw 'Native Computer Use tests failed' }
} finally { Pop-Location }
- name: Build agent and native History recorder from source
run: npm --prefix App/memmy-agent run build
- name: Validate packaged app icons with Windows PowerShell 5.1
Expand Down Expand Up @@ -155,10 +171,55 @@ jobs:
node node_modules/vitest/vitest.mjs run
App/shell/desktop/tests/packaged-runtime-boundary.test.ts
-t "requires the native Windows 11 History recorder"
- name: Emit exact-source Windows provider receipt
id: windows_provider_receipt
if: ${{ success() && steps.native_history_tests.outcome == 'success' && steps.native_computer_use_tests.outcome == 'success' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }}
run: |
$ErrorActionPreference = 'Stop'
if ($env:RUNNER_OS -ne 'Windows') { throw 'Windows provider receipt requires a Windows runner' }
$head = (git rev-parse HEAD).Trim()
if ($LASTEXITCODE -ne 0 -or $head -ne $env:EXPECTED_SOURCE_SHA) {
throw "Executed checkout $head does not match expected source $env:EXPECTED_SOURCE_SHA"
}
git diff --quiet
if ($LASTEXITCODE -ne 0) { throw 'Tracked source changed during validation' }
git diff --cached --quiet
if ($LASTEXITCODE -ne 0) { throw 'Index changed during validation' }
$receipt = [ordered]@{
schemaVersion = 1
provider = 'windows'
status = 'passed'
headSha = $head
repository = $env:GITHUB_REPOSITORY
workflowRef = $env:GITHUB_WORKFLOW_REF
workflowSha = $env:GITHUB_WORKFLOW_SHA
runId = $env:GITHUB_RUN_ID
runAttempt = [int]$env:GITHUB_RUN_ATTEMPT
runnerOS = $env:RUNNER_OS
runnerArch = $env:RUNNER_ARCH
windowsBuild = [Environment]::OSVersion.Version.Build
generatedAt = [DateTime]::UtcNow.ToString('o')
nativeModules = @(
'App/native-computer-history/apps/OpenComputerHistoryWindows'
'App/native-computer-use/apps/OpenComputerUseWindows'
)
liveCaptureValidated = $false
signedInstallerValidated = $false
}
$receipt | ConvertTo-Json -Depth 4 | Set-Content -LiteralPath windows-provider-receipt.json -Encoding utf8NoBOM
- name: Upload exact-source Windows provider receipt
if: ${{ success() && steps.windows_provider_receipt.outcome == 'success' }}
uses: actions/upload-artifact@v4
with:
name: windows-provider-receipt-${{ env.EXPECTED_SOURCE_SHA }}-${{ github.run_attempt }}
path: windows-provider-receipt.json
if-no-files-found: error
retention-days: 14
- name: Record validation scope
if: ${{ always() }}
run: |
@'
Validates source-built Windows History recorder identity, PE architecture, exact embedded worker source, pure recorder state/lifecycle self-tests, UTF-8 app catalog output, runtime asset copy, and packaging rules. This does not start live recording or prove real UI Automation/hook behavior.
Both native Windows Go modules are tested. The provider receipt is limited to the checks in this job; it does not prove live capture or signed-installer acceptance.
A signed NSIS installer and a representative real-app capture matrix still require installation testing on a Windows 11 machine.
'@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
node_modules/
dist/
App/memmy-agent/npm-packages/
release/
App/shell/desktop/release/
Mac软件打包/
Expand Down
1 change: 1 addition & 0 deletions AgentSourceCore/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export * from "./cursor-source-turn.js";
export * from "./claude-code-source-turn.js";
export * from "./openclaw-source-turn.js";
export * from "./opencode-source-turn.js";
export * from "./opencode-database-source.js";
export * from "./hermes-source-turn.js";
export * from "./deepseek-source-turn.js";
export * from "./deepseek-session-files.js";
Expand Down
Loading
Loading