From 83ced52ed734cdea323b5b2598f31ee97ca22ebd Mon Sep 17 00:00:00 2001 From: WardLu Date: Sun, 16 Aug 2026 11:26:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(growth-loop):=20=E6=9C=9F=E5=88=9D?= =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=8F=97=E6=8E=A7=E5=87=BD=E6=95=B0=E4=B8=8E?= =?UTF-8?q?=E5=AD=A6=E4=B9=A0=E5=8C=85=E6=A8=A1=E5=9D=97=E5=90=AF=E5=81=9C?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补齐 W2 两个缺口: - 期初积分:learning_confirm_opening_balance 受控 RPC,每个孩子仅可确认一次, 生成独立 initial_balance 流水;仅放宽 initial_balance 的 ±1000 限额。 - 学习包模块启停:内容包代码注册表 + 孩子级 content_config,四模块归并入「学习」, 首页与成长日历只统计已启用模块。 --- index.html | 5 +- src/app.css | 11 + src/app.js | 298 ++++++++++++++---- src/learning-content-package.js | 85 +++++ src/learning-growth-cloud.js | 7 + src/learning-growth-loop-controller.js | 27 ++ src/learning-growth-loop.js | 49 +++ src/learning-local-db.js | 1 + src/learning-state-envelope.js | 17 +- src/learning-state.js | 3 + ...0816120000_growth_loop_opening_balance.sql | 152 +++++++++ .../growth_loop_opening_balance_test.sql | 284 +++++++++++++++++ tests/e2e/offline-tts-error.spec.js | 3 +- tests/e2e/offline-tts-warmup.spec.js | 15 +- tests/e2e/offline.spec.js | 43 ++- tests/e2e/tts-system-fallback.spec.js | 3 +- tests/unit/learning-content-package.test.js | 71 +++++ tests/unit/learning-growth-loop.test.js | 53 ++++ tests/unit/learning-state.test.js | 21 ++ 19 files changed, 1037 insertions(+), 111 deletions(-) create mode 100644 src/learning-content-package.js create mode 100644 supabase/migrations/20260816120000_growth_loop_opening_balance.sql create mode 100644 supabase/tests/growth_loop_opening_balance_test.sql create mode 100644 tests/unit/learning-content-package.test.js diff --git a/index.html b/index.html index a9d0372..982f5e7 100644 --- a/index.html +++ b/index.html @@ -36,10 +36,7 @@

影伴