Commit Graph

725 Commits

Author SHA1 Message Date
john fbd68a36e9 fix(release): stop circular dry-run in fast release gate unit test
Memind CI / Test, build, and release guards (push) Successful in 3m36s
Replace the integration spawn that re-entered run_fast_release_guards with
static script checks so fast release guards can finish reliably.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-15 08:34:53 +08:00
john be8ce867ca Merge branch 'feature/wechat-image-followup-poison-fix'
Memind CI / Test, build, and release guards (push) Failing after 3m29s
Fix WeChat image-then-text report follow-up image_url session poisoning.
2026-08-15 08:21:39 +08:00
john 67b9478155 fix(wechat): avoid image_url session poison on report follow-ups
Store image-only WeChat messages without running Agent, scrub assistant image_url history, and retry historical-image failures with text-only prompts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-15 08:21:28 +08:00
john 4c2bc95462 Merge branch 'feature/portal-fast-release'
Memind CI / Test, build, and release guards (push) Successful in 3m0s
Add standard and fast 103 portal release modes.
2026-08-15 08:06:15 +08:00
john 835677a285 feat(release): add standard and fast 103 portal release modes
Formalize fast release as --mode fast so verified changes can skip canary promotion and full Gate reruns while keeping backups and health checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-15 08:03:44 +08:00
john a9fe3d01a7 fix(release-gate): map canary rollback script to REL impact domain
Memind CI / Test, build, and release guards (push) Failing after 4m1s
rollback-portal-canary-prod.sh is part of the 103 canary workflow and must
not block impact selection when it changes alongside release scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:54:26 +08:00
john c9b2fcba87 fix(wechat): treat report page follow-ups as session continuation
Memind CI / Test, build, and release guards (push) Has been cancelled
Phrases like "解读详细报告,做成页面" now bind to the in-session report
context instead of behaving like a brand-new page topic.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:53:00 +08:00
john b97f607817 fix(canary): drop Docker preflight on native 103 goosed
Memind CI / Test, build, and release guards (push) Failing after 2m35s
103 no longer runs goosed-prod Docker. Canary preflight now checks the
native 18006-18014 pool, and release-gate tests match 127.0.0.1 health probes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:42:23 +08:00
john e59809eff4 fix(canary): share the native 103 goosed pool instead of Docker
Memind CI / Test, build, and release guards (push) Failing after 2m40s
103 retired Docker goosed on 2026-07-30. Portal canary now health-checks
18006-18014 and inherits those targets, instead of requiring goosed-prod-1.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:35:58 +08:00
john 19c8cdb970 test(wechat): give voice reco polling enough time in CI
Memind CI / Test, build, and release guards (push) Successful in 4m1s
The mocked second poll result was racing a 50ms deadline on a loaded
runner, so CI failed with an empty transcript.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:27:26 +08:00
john fd56f087c6 fix(canary): reuse the healthy shared DeepSeek proxy on 18036
Memind CI / Test, build, and release guards (push) Failing after 2m48s
Stable 103 already runs deepseek-no-think on 18036. Require that contract
instead of demanding a free port, so canary install does not fight production.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:23:07 +08:00
john 25be530d84 fix(release-gate): invalidate only the suite whose command file changed
Memind CI / Test, build, and release guards (push) Successful in 3m33s
A change to one run-release-gate script must not force every live and
upgrade suite to rerun.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:15:44 +08:00
john 2f240e7500 fix(release-gate): skip duplicate CI work and stop live LLM blowups
Shared paths like db.mjs were pulling PAGE/DATA live agent suites into every
hotfix. Keep those cases for actual page-data changes, resume passed suites on
the same artifact, and fail fast on Docker/port issues instead of rerunning 100+
scenarios.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:15:16 +08:00
john 293ac69a76 fix(release-gate): assert AI survey delivery instead of plan keywords
Memind CI / Test, build, and release guards (push) Successful in 4m16s
DATA-01 told the agent not to stop at 方案确认, then failed because the first
reply no longer contains those words. Assert 问卷/后台 delivery instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 22:00:53 +08:00
john 1b9c65fec1 docs: record rebased image-quota fix SHA
Memind CI / Test, build, and release guards (push) Successful in 4m40s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 21:46:57 +08:00
john ab08839a54 docs: register fix/image-quota-migration-backfill branch disposition
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 21:46:33 +08:00
john 8cf1c772a7 fix(billing): backfill finite image quota after free-plan rebuild
Expired paid users were rebuilt as free with period_images_limit=0, which the quota system treats as unlimited. Write the catalog quota on rebuild and repair existing finite plans on schema ensure.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 21:46:33 +08:00
john 41f245c88a fix(wechat): rotate image_url-poisoned sessions for report follow-ups
Memind CI / Test, build, and release guards (push) Has been cancelled
Goose cannot persist historical image scrub (PUT 405), so DeepSeek rejects
image_url on the next turn. Reattach the recent report image and rotate to a
fresh session instead of treating the follow-up as a missing page source.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 21:45:02 +08:00
john fe2d5d7aa1 fix(release-gate): map index.html to the UI impact domain
Memind CI / Test, build, and release guards (push) Successful in 7m50s
Unblock Core+Impact selection for H5 shell title changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 09:46:34 +08:00
john 443544d1f7 fix(h5): show TKMind as the user-facing product name
Memind CI / Test, build, and release guards (push) Has been cancelled
Keep the chat chrome, page title, and related copy aligned with the existing TKMind brand.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 09:42:50 +08:00
john 36d3a91f8d test(chat): widen intent-router timeout fallback window
Memind CI / Test, build, and release guards (push) Successful in 5m32s
CI failed on a 5ms/20ms race that let the LLM reply win before the timeout fallback. Give the abort path more slack so the guard stays deterministic.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 16:15:16 +08:00
john 4e789663a1 feat(seo): index public online pages without confirmation
Memind CI / Test, build, and release guards (push) Failing after 5m19s
Drop the user_confirmed_at gate so public, online, unexpired pages can enter sitemap/llms and receive SEO/GEO tags. Defaults now enable all discovery switches; stored all-off config is still preserved until admin saves.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 15:51:48 +08:00
john 8a88cd53e8 fix(h5-chat): resolve logged-in blank page from canSubmit TDZ
Memind CI / Test, build, and release guards (push) Failing after 4m28s
Move canSubmit above sendButtonLabel so authenticated ChatPanel render no longer throws before initialization.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 11:33:26 +08:00
john baf89c5d04 docs: register 2026-08-12 dev and related branch dispositions
Memind CI / Test, build, and release guards (push) Successful in 4m10s
Record closure for achievements showcase, WeChat menu rename, runtime profile packaging, SEO/GEO admin catalog, and achievements delivery fix branches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 10:26:49 +08:00
john 19dacc0e5d docs: register feature/h5-queued-chat-submit branch disposition
Memind CI / Test, build, and release guards (push) Successful in 4m21s
Record audit trail for the H5 queued chat submit fix merged at 558c4ef.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 09:21:12 +08:00
john 558c4ef2ee fix(h5-chat): queue main-session submits while agent is busy
Memind CI / Test, build, and release guards (push) Successful in 4m1s
Prevent silent drops when users send follow-up instructions during waiting or streaming by showing the message immediately, notifying them it is queued, and auto-flushing after the composer returns to idle.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 08:51:30 +08:00
john 53b0d2c62f fix(mindspace): release edited public pages and fix achievements dates
Memind CI / Test, build, and release guards (push) Successful in 3m37s
Finish now releases static HTML delivery contracts in a finally block so
re-edited pages are not stuck at HTTP 409, and M成果 groups pages by
Asia/Shanghai calendar dates to avoid duplicate day headings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 06:41:40 +08:00
john fdc234e5d0 feat(admin): add SEO/GEO publication catalog with crawler stats
Memind CI / Test, build, and release guards (push) Successful in 3m38s
Expose a DB-backed catalog of all online publications with SEO, GEO, total,
and bot view counts from h5_publication_views for the memind_adm dashboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 16:41:39 +08:00
john 6542a43495 fix(release): bundle memind-runtime-profile for WeChat menu scripts
Memind CI / Test, build, and release guards (push) Successful in 5m55s
load-env.mjs depends on memind-runtime-profile.mjs; include it in portal
runtime packaging so wechat-mp-menu.mjs works on 103 without manual scp.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 16:23:54 +08:00
john e9ea55cf5e chore(wechat): rename service account menu label TKMind to Memind
Memind CI / Test, build, and release guards (push) Successful in 5m30s
Align the first WeChat custom menu button with the Memind product name before direct 103 release.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 16:03:51 +08:00
john 421e204711 feat(mindspace): add achievements showcase with paginated management
Memind CI / Test, build, and release guards (push) Successful in 3m28s
Ship the M成果 page with list/delete UX, fix deletePage for incomplete page records, route /space/achievements, and add M成果 under the WeChat M空间 menu.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 15:21:42 +08:00
john e9cecf8733 docs: register feature/subscription-usage-records branch disposition
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 13:58:29 +08:00
john dedf8833d3 Merge branch 'feature/subscription-usage-records'
Memind CI / Test, build, and release guards (push) Successful in 3m41s
Record subscription-covered token usage in usage records.
2026-08-12 13:57:10 +08:00
john 753c1eec23 fix(scheduled-task): forward worker env to sandbox MCP
Memind CI / Test, build, and release guards (push) Successful in 6m3s
goosed stdio MCPs do not inherit Portal env, so scheduled_task_create
always reported worker disabled even when H5_REMINDER_WORKER_ENABLED=1.
Forward worker flags in sandboxMcpEnvs and add a regression test.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 20:49:36 +08:00
john 62fbea0936 docs: 登记 feature/md-admin-domain 分支闭环
Memind CI / Test, build, and release guards (push) Successful in 4m37s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 17:41:20 +08:00
john 871688550e docs(analytics): 管理后台域名改为 md.tkmind.cn
Memind CI / Test, build, and release guards (push) Has been cancelled
同步 Analytics 发布 runbook 与 admin 默认 PUBLIC_HOST,与 memind_adm 生产入口一致。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 17:38:31 +08:00
john d570856cbd docs: register feature/analytics-release-docs branch disposition
Memind CI / Test, build, and release guards (push) Failing after 1m46s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 16:33:19 +08:00
john 8348ce3625 docs: add analytics release runbook and 105 Umami topology
Memind CI / Test, build, and release guards (push) Has been cancelled
Cross-repo publish order for memind-analytics, Portal, and memind_adm;
update platform and 105 operations docs for systemd artifact deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 16:21:57 +08:00
john 2799c808ee fix(analytics): guard missing request headers when reading referrer hint
Memind CI / Test, build, and release guards (push) Failing after 12m47s
Prevent publication delivery from crashing when test or proxy requests omit
headers while attaching SEO/GEO discovery metadata.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 14:26:24 +08:00
john bbc9ed5821 Merge branch 'feature/analytics-seo-geo-discovery'
Memind CI / Test, build, and release guards (push) Failing after 4m26s
2026-08-10 14:18:16 +08:00
john 6ba95c6229 fix(scheduled-task): reject meta-only phrases in taskSpec parsing
Memind CI / Test, build, and release guards (push) Successful in 7m31s
Treat hollow requests like「我要做一个定时执行任务」as missing taskSpec so
WeChat preflight asks for both schedule and executable content instead of
accepting「执行」as a deliverable task description.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 01:36:38 +08:00
john c122bd5664 feat(analytics): retire Rybbit and add SEO/GEO discovery tracking
Document Umami as the sole analytics platform, remove Rybbit proxy and
tracker code, and classify public page traffic with discovery_channel for
adm SEO/GEO dashboards.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 01:34:05 +08:00
john c58a23d155 fix(scheduled-task): improve live verify and short delivery acceptance
Memind CI / Test, build, and release guards (push) Failing after 12h5m29s
Extend live verify wait budget to cover Agent execution timeout, use a
deterministic smoke taskSpec, and accept concise successful replies like
「验证成功」 instead of treating them as non-delivery.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:41:29 +08:00
john c7832e1869 fix(verify): ceil scheduled task runAtLocal to next minute
Memind CI / Test, build, and release guards (push) Failing after 2m45s
Avoid flaky verify failures when truncating sub-minute offsets into the past.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 21:42:31 +08:00
john 049d8a6f80 fix(scheduled-task): enable worker by default and add WeChat preflight
Memind CI / Test, build, and release guards (push) Has been cancelled
Scheduled automations were saved but never executed because the worker
required an explicit env flag. Follow H5_REMINDER_WORKER_ENABLED when unset,
add WeChat preflight to write tasks deterministically, and surface worker
warnings on create.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 19:32:09 +08:00
john 2313d76eed fix(seo): join h5_page_records in indexable publication queries
Memind CI / Test, build, and release guards (push) Successful in 8m43s
Prevent Portal crash when sitemap/llms discovery runs against production schema.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 09:53:45 +08:00
john 943dad5221 test(portal): mock template catalog bootstrap in auth service tests
Memind CI / Test, build, and release guards (push) Failing after 7m56s
Fix canary release source guards that match publish|space|billing tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 09:36:51 +08:00
john c3e6d4ee31 fix(session-broker): ignore release-gate artifacts in coverage scan
Memind CI / Test, build, and release guards (push) Failing after 6m29s
Prevent stale Gate local stacks from blocking h5-session verify during production release.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 09:20:31 +08:00
john 7a08c0f6ae test(portal): expect templateCatalogService in agent runtime route deps
Memind CI / Test, build, and release guards (push) Failing after 7m58s
Align route contract test with the page template catalog dependency wiring.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 08:25:53 +08:00
john 0796a7bf22 fix(release-gate): map page-template and admin-server impact paths
Memind CI / Test, build, and release guards (push) Failing after 7m22s
Unblock production Gate selection for the page template catalog and SEO release.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 08:07:33 +08:00