Skip to content

release: Memmy v1.1.5 - #406

Draft
syzsunshine219 wants to merge 49 commits into
mainfrom
release/v1.1.5
Draft

release: Memmy v1.1.5#406
syzsunshine219 wants to merge 49 commits into
mainfrom
release/v1.1.5

Conversation

@syzsunshine219

@syzsunshine219 syzsunshine219 commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Prepare the Memmy v1.1.5 release from release/v1.1.5 at a99aeb65e6aa07903b8e6fb30d7444519a541445, based on the current main commit 25acd5f29fc7df73b943713abe61f1b2f9839887.

This release includes Agent-source turn capture and native scan improvements, standalone Memory packaging and runtime assets, StepFun and Xiaomi MiMo providers, attachment and work-memory updates, PDF/DOCX/PPTX/XLSX skills and validation tools, desktop behavior fixes, Yunxiao synchronization, and documentation updates. Application/Agent/Desktop metadata is 1.1.5; Memory/viewer/CLI metadata is 2.1.3; Memory protocol remains 1.

Validation for the exact candidate:

  • Full Harness passed all 12 checks on a clean worktree: control contract, test alignment, lint, changed lint, affected type checks, affected workspace suites, local API contract matrix, desktop UI assertions, smoke plans, full build, distribution boundary and diff sanity.
  • Affected suites: local-api-contracts 8 passed; Backend 851 passed; frontend desktop 1,554 passed; Agent 5,138 passed / 3 skipped; Desktop shell 249 passed / 106 platform skips; Memory 865 passed / 1 skipped.
  • Release workflow tests: 30 passed / 5 conditional skips. Packaging guards: 31 passed. Core/Migrations: 137 passed / 1 Windows-only skip.
  • Windows CI: 65 unit/upgrade checks and 1 native scheduled-task test passed, with zero skips.
  • Linux CI: build, 71 contract tests, and x64/arm64 installation and upgrade smoke checks passed. The PR upload job is intentionally skipped.
  • Evidence freshness was recomputed after delivery and is current for this head and base.

The four signed installers still require packaging-machine validation:

  • Memmy-1.1.5-win32-x64-cn-signed.exe
  • Memmy-1.1.5-win32-x64-intl-signed.exe
  • Memmy-1.1.5-darwin-arm64-cn-signed.dmg
  • Memmy-1.1.5-darwin-arm64-intl-signed.dmg

After those assets are built and accepted from this exact commit, review the Draft release notes, evidence, checksums, and installers before merging this PR and publishing the generated Draft Release. This machine has not signed, installed, uploaded, or published installers.

Wang-Daoji and others added 30 commits September 1, 2026 17:55
…gent-wy

# Conflicts:
#	App/shell/desktop/src/main/windows-launch-at-login.ts
#	scripts/internal/linux/build-cli-archive.sh
…ct schema

isCatalogProviderId duplicated the CatalogProviderId list at runtime, so a
provider added to the Zod enum was still rejected on read-back and its models
silently dropped from the view. The two lists were identical, so deriving the
guard from CatalogProviderIdSchema preserves behaviour and removes the drift.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wires both providers through the contract enums, the memmy-agent/Memory
projection, and the desktop model config. Xiaomi is exposed as `xiaomi` and
canonicalised to `xiaomi_mimo`; StepFun keeps one name across both layers.
Image generation stays out of scope and is asserted to reject both.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A choice that stops on `length` carries an unfinished thought, so promoting its
reasoning under reasoningAsContent surfaced raw thinking as the assistant reply
- visible as StepFun chat titles rendering the model's scratchpad.
reasoningContent is untouched, so the thinking view still works.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The Office rendering executables are provisioned by release packaging and are
not tracked in the repository, so build-cli-archive.sh failed closed on every
pull request and branch build that touched its path filters.

MEMMY_LINUX_CLI_ALLOW_MISSING_OFFICE_PAYLOAD skips only the executable presence
checks, and only for pull_request and push events. A manifest that names hashes
still describes a real payload and stays verified, so release publishes keep the
original guarantee.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…-stepfun

feat(model-config): add StepFun and Xiaomi MiMo text providers
…ith manifest, add IM buffering

Changes:
1. Remove 4-attachment count limit and 10MB/6MB per-file size limits
   - Frontend: drop AGENT_ATTACHMENT_MAX_COUNT, AGENT_FILE_TARGET_MAX_BYTES
   - Backend: remove MAX_ATTACHMENTS_PER_MESSAGE, MAX_IMAGE_BYTES, per-file checks
   - Raise request body cap to 256MB (websocket & openai-like-api)

2. Replace extractDocuments full-text injection with attachment manifest
   - buildUserContent now emits '<attachments>' manifest block for non-image files
   - Model reads content via read_file tool instead of inline text
   - Manifest never enters session history or GUI message bubbles
   - Remove extractDocuments/guessImage/MAX_EXTRACT_FILE_SIZE from document.ts
   - Remove extractDocuments calls from pendingToUserMessage and stateRestore
   - Matrix/QQ/Feishu: remove successful-attachment markers from content
     (failure markers retained; Matrix body=filename caption logic added)

3. Add IM attachment buffering in AgentLoop.run
   - Pure-attachment IM messages (no text) accumulate per effectiveSessionKey
   - First message with text merges the buffer and dispatches the turn
   - Requires change 2 so attachment-only content is truly empty
   - GUI/TUI/API messages bypass the buffer entirely
   - cloneInboundMessage extended with optional media override

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat(attachments): remove count/size limits, replace doc extraction w…
fix(memory): render world model detail markdown
…ackaged assets

- server: honor --version/--help/SERVER_USAGE before starting
- server: set viewer endpoint from actual bound URL (incl. ephemeral port)
- config: default sqlite path honors MEMMY_MEMORY_HOME/MEMORY_SERVICE_HOME
- embedder: locate embedded model via import.meta.url for packaged runtime

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Skip the duplicate-only error toast after attachment validation filters out all incoming files. Preserve existing attachment identity and unsupported-file and read-failure error handling.

Add HomePage drop interaction coverage for both composer views, repeated renamed files, mixed duplicate/new drops, and real validation failures.
- embedder: require transformers via CommonJS when running under pkg
- embedder: materialize bundled model into tmpdir since ONNX cannot read pkg snapshot
- embedder/db: add bundle-root candidate path for packaged assets
- db: refresh copied better_sqlite3.node on every start

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Deduplicate native turns through a shared ingestion path and preserve
Session, Episode and RawTurn associations for scanned memories.

Capture custom tool calls and outputs, and pair results by call ID.
…te-attachment-v1-1-5

fix(MEMMY-399): silently ignore duplicate attachment drops
…ment-overlap-v1-1-5

fix(desktop): avoid Windows environment toolbar overlap
…mory

# Conflicts:
#	App/backend/src/services/agent-source-service.ts
#	Memory/src/agent-source/runtime.ts
#	scripts/internal/mac/build-dmg.sh
Align the packaged runtime regression with the workspace-based
AgentSourceCore staging flow and verify the parser package and
Hook bridge are included in the macOS runtime.
syzsunshine219 and others added 19 commits September 10, 2026 20:56
fix(MEMMY-411, MEMMY-413): unify Codex L1 capture across hooks and scans
The mac DMG script installs the Memory runtime with --install-links so
workspace dependencies are copied instead of symlinked, but the boundary
assertions still expected the pre-flag command lines and failed on a
clean tree.
…t filters

Standalone packaging
- Add build-standalone.mjs, which turns a runtime bundle into a single
  executable with @yao-pkg/pkg. pkg embeds its own Node binary, so
  better-sqlite3 is re-fetched for that ABI and onnxruntime-node is
  trimmed to the target platform slice.
- build-runtime.mjs keeps workspace-only packages out of the runtime
  manifest, because npm ci cannot resolve them from the public registry,
  and vendors their build output into node_modules instead.
- Pass --libc=glibc on Linux so npm stops silently skipping the optional
  @img/sharp native package, and verify sharp and the vendored workspace
  packages are present in the bundle.
- Let the Viewer resolve its assets from the packaged runtime root so the
  same lookup serves both the standalone executable and the unpacked
  runtime.

Installer lock recovery
- An installer that crashed or was killed never released its lock file,
  which then blocked every later install. Reclaim such a lock once per
  call when its owner process is gone, and keep the full wait for a live
  owner so concurrent installers stay serialized.

Panel Agent filters
- One Agent writes several source ids ("memmy-agent", "memmy-onboarding",
  "claude" vs "claude-code"), and the panel collapses them into a single
  displayed Agent. Exact-match filters therefore hid memories that showed
  the Agent's own badge. Match the whole id family instead, via a shared
  agent-source-id helper, and collapse the duplicated normalization SQL
  into one match clause and one exclusion clause.
- Custom Agents stay separate: they are registered as "manual_<name>" and
  "manual" is deliberately not a family.

clear-all-windows.ps1 now runs unattended and deletes without a prompt;
use -WhatIf to preview. Also guard Get-ObjectPropertyValue against a null
input object.
…0260911

test: use local model catalog contract in Memory config tests
@syzsunshine219

Copy link
Copy Markdown
Collaborator Author

Project Harness review handoff marker. Only reviews submitted strictly after this GitHub timestamp qualify.

@syzsunshine219 syzsunshine219 changed the title release/v1.1.5 release: Memmy v1.1.5 Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants