Commit Graph

717 Commits

Author SHA1 Message Date
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
john fde6503bdf feat(mindspace): add SEO/GEO delivery, page template catalog, and admin hooks
Memind CI / Test, build, and release guards (push) Has been cancelled
Enable optional SEO/GEO injection and discovery routes for confirmed public pages while keeping private pages noindex. Add premium page template skills, portal catalog API, template shop UI, and Baidu push gated by memind_adm config.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 08:06:12 +08:00
john 7c65540366 Rename user-facing product label from TKMind to Memind.
Memind CI / Test, build, and release guards (push) Failing after 3m8s
Centralize the display name so nav, login, and page chrome stay consistent ahead of the 103 release.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 19:24:09 +08:00
john 5db7478c98 test(wechat-mp): expect stdio restore during session reconcile
Memind CI / Test, build, and release guards (push) Successful in 8m19s
Reconcile now re-adds missing sandbox-fs before reply; update the dedicated
session test to assert add_extension and restart are invoked.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 15:49:57 +08:00
john d523b9595d fix(session): restore sandbox-fs after agent-run quiesce
Agent runs quiesced stdio MCP extensions including sandbox-fs, but reconcile
skipped re-adding missing stdio extensions and treated absent listings as OK.
Preserve sandbox-fs across quiesce and re-add other required stdio extensions
on the next reconcile so generate_image and write_file stay available.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 15:49:04 +08:00
tkmind 49ff7c9bad feat(billing): record subscription-covered token usage in usage records (#46)
Memind CI / Test, build, and release guards (push) Successful in 2m52s
2026-08-06 10:52:55 +00:00
john 6b586e0951 feat(billing): record subscription-covered token usage in usage records
Memind CI / Test, build, and release guards (pull_request) Successful in 4m8s
Write h5_usage_records when plan quota fully covers a session bill so
WeChat and H5 consumption stays visible in admin usage history.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 18:51:11 +08:00
tkmind 7c18c998bd Merge pull request 'fix(billing): mock billing admin config in auth bootstrap tests' (#45) from fix/billing-admin-config-bootstrap-tests into main
Memind CI / Test, build, and release guards (push) Successful in 4m9s
2026-08-06 09:08:17 +00:00
john 07a88eb194 fix(billing): mock billing admin config in auth bootstrap tests
Memind CI / Test, build, and release guards (pull_request) Successful in 7m24s
Portal canary source guards were failing because bootstrap tests used a stub pool without query.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 17:05:44 +08:00