Commit Graph
447 Commits
Author SHA1 Message Date
jesse-uxGrok (agent loop)Cursor
ba1ffeb35f fix(report): keep the English edition when one phrase was untranslated
The English personal report was discarded whenever a Chinese fragment survived the trailing glossary. English sections now render the English fields that were already calculated.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 02:56:00 +08:00
jesse-uxandCursor 6a761bc51e fix(synastry): show timeline spans and keep old chats on the default model
English reports hid the analysis fold, timeline titles left out the month span, and deleting a pinned model stopped the next consultation turn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-21 16:28:04 +08:00
Jesse_ChenandClaude Opus 5.5 503a16fb92 fix(db): add gte and lt to the self-hosted query builder so synastry reports can be created
Independent Staging Quality Gate / validate (push) Failing after 18m15s
Independent Staging Quality Gate / publish (push) Skipped
createSynastryFullReport counted today's reports with .gte(), which the
self-hosted client did not implement; every create threw before any credit
was reserved and surfaced as a generic 500 (BUG-1399). The synastry create
path now uses the shared DataQueryBuilder type, and a scan test requires every
builder method used in src to exist on the self-hosted client.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-21 14:15:59 +08:00
jesse-uxandCursor 67c1e68815 feat(synastry): lay out the match screens from the confirmed prototype
Independent Staging Quality Gate / validate (push) Failing after 18m11s
Independent Staging Quality Gate / publish (push) Skipped
The add-person card, the generating wait, and the report header follow the prototype the product owner pointed at.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 17:22:17 +08:00
jesse-uxandCursor 0a5d93ab75 fix(admin): save published models as a new draft and allow deleting them
Independent Staging Quality Gate / validate (push) Successful in 14m0s
Independent Staging Quality Gate / publish (push) Successful in 4m5s
Editing a published model tried to update a non-draft row, so the save collapsed into a generic constraint error.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 15:02:42 +08:00
jesse-uxandCursor 006b067e82 fix(synastry): open the match page from the live flag and price it at 19 credits
Independent Staging Quality Gate / validate (push) Failing after 14m48s
Independent Staging Quality Gate / publish (push) Skipped
The closed sentence was prerendered when the build had no database. The page now asks for the flag in the browser, and synastry.full is published at 19 credits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 12:52:28 +08:00
jesse-uxandCursor 3956519f33 feat(synastry): open a follow-up chat from one stored report section
The chat stays bound to that section's saved calculation, checks each chart fact before answering, and bills like an ordinary turn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 21:44:25 +08:00
jesse-uxGrok (agent loop)Cursor
123295135a fix(synastry): restore report paging and finish the third review gaps
Independent Staging Quality Gate / validate (push) Successful in 16m50s
Independent Staging Quality Gate / publish (push) Successful in 10m2s
The list query had been split into four reads, so older pages no longer followed one cursor. A7 was read from the wrong module, and the shell asked for the product switch on every mount.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 15:53:06 +08:00
jesse-uxGrok (agent loop)Cursor
88d641974e Merge remote-tracking branch 'origin/staging' into codex/synastry-full-report-20261018
Renumber the synastry records to BUG-1394 and BUG-1395 so they no longer collide with BUG-1393 from issue 84.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 15:34:29 +08:00
jesse-uxGrok (agent loop)Cursor
362d903c31 fix(synastry): close the second review gaps on evidence, billing, and the sidebar
The second review still failed on missing database and route coverage, an unmarked relationship structure, a stuck English lease, and a sidebar that fetched the product switch itself.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 14:48:11 +08:00
jesse-uxGrok (agent loop)Cursor
e8793bb0d2 fix(synastry): fill section evidence and stop the English job from sticking
The review found empty sections and an English job that stayed running. Take evidence from reader briefs, retry one section, and settle before marking the report ready.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 12:55:17 +08:00
jesse-uxGrok (agent loop)Cursor
4d2506c8c1 fix(reading): give Niryaana Shoola its own PVR table
The report used the same nine-year rule as Shoola. Start from the stronger second or eighth sign and list mahadashas only.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 12:21:35 +08:00
jesse-ux d4ed45d891 Merge remote-tracking branch 'origin/staging' into codex/synastry-full-report-20261018 2026-10-19 12:01:06 +08:00
jesse-uxGrok (agent loop)Cursor
9ea5b3b0c0 feat(synastry): write the full relationship report on demand
The pair page and reader replace the leftover chat draft, and the same pair is not charged again.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 10:03:55 +08:00
Jesse_ChenandClaude Opus 5.5 e7cab24c1a merge origin/staging into narrower delivery (只碰文档;显示漏段 BUG-1375 顺延为 BUG-1392, issue #77)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-19 09:15:55 +08:00
jesse-uxandGrok (agent loop) f67d266129 补上交付区间收窄的两份回放,并把撞号的记录改成 BUG-1375。
两份各 924 条,12 格包含率都过红线。BUG-1370 到 1374 留给婚恋合盘。

Co-Authored-By: Grok (agent loop)
2026-10-19 08:53:18 +08:00
jesse-uxGrok (agent loop)Cursor
2130682d43 fix(reading): hold Niryaana Shoola and drop the root helper
Independent Staging Quality Gate / validate (push) Successful in 14m30s
Independent Staging Quality Gate / publish (push) Successful in 3m54s
The two upstream files stay verbatim in scripts/. The path helper moved into a subdirectory so the root file budget rises by only those two. Niryaana Shoola is a placeholder until its rule is corrected. Targeted tests passed.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 00:19:57 +08:00
jesse-uxGrok (agent loop)Cursor
a0122251be merge origin/staging into the full-reading module parity branch
Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 23:23:34 +08:00
jesse-uxGrok (agent loop)Cursor
2cc5c0c128 merge origin/staging into the second marriage-match fix
Keep both changelog sections and both bug-history tails.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 20:29:46 +08:00
jesse-uxGrok (agent loop)Cursor
900581068e feat(reading): fill the five full-reading modules missing from upstream
The western comparison layer was invoked without its files, so it stayed blocked. Navamsha and Niryaana Shoola are filled from the native rashi dashas.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 19:32:38 +08:00
jesse-uxGrok (agent loop)Cursor
cf5a62c684 fix(synastry): store only the two marriage-match profiles
The saved row was the whole dossier twice. Keep the default and Raman match results, drop a concurrent duplicate insert back to the first row, and hide the new rows from the old history list.

Checked service tests 9/9, tsc 0, lint 0 errors, and test:db 73 pass / 13 fail matching the Windows known list.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 19:14:31 +08:00
Jesse_ChenandClaude Opus 5.5 0d92f586b6 docs: record sync8 acceptance, BUG-1390/1391 and the ERR-110 refreeze
Independent Staging Quality Gate / validate (push) Successful in 15m2s
Independent Staging Quality Gate / publish (push) Successful in 4m10s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
2026-10-18 18:57:02 +08:00
jesse-uxGrok (agent loop)Cursor
52160a9cef merge origin/staging into marriage-match fix
Keep both changelog entries and the archive-limit board row. The marriage-match row stays on this branch for the storage fix.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 18:51:34 +08:00
Jesse_Chen 84967d747f Merge remote-tracking branch 'origin/staging' into codex/upstream-sync8-finish-20261018
# Conflicts:
#	CHANGELOG.md
2026-10-18 18:44:55 +08:00
jesse-uxGrok (agent loop)Cursor
44e961ef9b docs: record the eighth upstream sync and the freeze decision
The ten calculation fixes are on this branch. Rectification trials match the previous replay, and the freeze files were not rewritten.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 17:07:36 +08:00
jesse-uxGrok (agent loop)Cursor
cf063834ca feat(synastry): store the upstream seven-item marriage match
Move the bde5d615 engine and full-synastry skill in unchanged, save both profiles without billing or a page, and retire the old synastry module.

Checked targeted pytest, tsc 0, lint 0 errors, service tests 6/6, and test:db 73 pass / 13 fail matching the Windows known list.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 16:44:05 +08:00
jesse-uxandCursor a0e84845e9 feat(people): raise the chart archive cap to 20 people
Independent Staging Quality Gate / validate (push) Successful in 17m28s
Independent Staging Quality Gate / publish (push) Successful in 23m1s
The trigger, the shared constants, and the limit sentence now agree, and the archive and person menus scroll instead of growing past the screen.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 16:33:06 +08:00
jesse-uxandGrok (agent loop) 1ba473970f 避免四舍五入和缺区间把还可能的时间从目前范围里藏掉。
Co-Authored-By: Grok (agent loop)
2026-10-17 21:16:32 +08:00
jesse-uxandGrok (agent loop) 56a3c08145 显示生时校正里还活着的时间段,不再把空档涂进目前范围。
交付卡、旁白和遥测在有簇区间时按段书写。打分、出题和进区间门槛未改;对半出题和门槛 6 因为没有真值保留回放而没有交付。

Co-Authored-By: Grok (agent loop)
2026-10-17 03:07:25 +08:00
Jesse_ChenandClaude Opus 5.5 1eb504d3e0 merge origin/staging into beta safety net (只碰文档;安全网 BUG-1358~1364 顺延为 1360~1366, issue #75)
Independent Staging Quality Gate / validate (push) Successful in 13m11s
Independent Staging Quality Gate / publish (push) Successful in 3m50s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-16 14:33:45 +08:00
jesse-uxandGrok (agent loop) 5ac88e58f5 让大运接口走完整解读的同一套算法,不再返回编出来的周期。
Ashtottari 在适用时把出生前已经走过的部分算进时间线。

Co-Authored-By: Grok (agent loop)
2026-10-16 00:52:29 +08:00
jesse-uxandGrok (agent loop) a7162db271 让免费层限流的报告跟真实限流一致,并给少一块结果的静默失败留下函数名和错误类型。
Co-Authored-By: Grok (agent loop)
2026-10-15 23:12:56 +08:00
jesse-uxandGrok (agent loop) 9455fbfc4f fix(release): keep daily backups from stalling when the disk fills
Expired daily files are pruned before a new backup, a verify older than 36 hours raises an alert, and the host monitors call sudo with the production env file. The Linux 0600 check is on the staging quick list.

Co-Authored-By: Grok (agent loop)
2026-10-15 17:24:26 +08:00
jesse-uxandGrok (agent loop) 14897f0bf3 merge origin/staging into the beta safety net branch
Safety-net records move to BUG-1358 through BUG-1361 because staging already uses BUG-1355 through BUG-1357 for capacity.

Co-Authored-By: Grok (agent loop)
2026-10-15 17:13:57 +08:00
jesse-uxandGrok (agent loop) 6ba63470a9 merge origin/staging into the beta safety net branch
The fix brief is already on staging. BUG-1354 on this branch collided with an earlier answer-effort record, so the safety-net entries move to BUG-1355 through BUG-1357.

Co-Authored-By: Grok (agent loop)
2026-10-15 16:04:45 +08:00
jesse-uxandGrok (agent loop) a54f75e5e3 fix(capacity): limit each user and queue heavy compute briefly.
Consult, rectification turns, and report generation stop before a credit reservation when the product caps are hit. A full heavy-compute gate waits up to 8 seconds, and one consultation retries that 429 inside the same request.

Co-Authored-By: Grok (agent loop)
2026-10-15 13:33:06 +08:00
jesse-uxandGrok (agent loop) 53d8df257d 给内测补上每日加密备份、宕机告警和日志上限。
主机安装和一次恢复演练留给产品。页面没有变化。

Co-Authored-By: Grok (agent loop)
2026-10-15 12:58:34 +08:00
Claude 7175548531 merge origin/staging into api chart subprocess gate (issue #64)
Independent Staging Quality Gate / validate (push) Successful in 13m47s
Independent Staging Quality Gate / publish (push) Successful in 4m5s
Docs-only catch-up; agent-loop rule A.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-15 10:44:32 +08:00
Claude 71f7fac3a1 merge origin/staging into chart ascendant row (issue #53)
Independent Staging Quality Gate / validate (push) Successful in 13m39s
Independent Staging Quality Gate / publish (push) Successful in 3m47s
Docs-only catch-up; agent-loop rule A.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-15 10:14:36 +08:00
jesse-uxandGrok (agent loop) 18fdce6006 merge origin/staging into the chart subprocess gate branch
Keep the pushed fix commit and bring in the bounce brief plus the data-layer fix.

Co-Authored-By: Grok (agent loop)
2026-10-15 10:11:38 +08:00
jesse-uxGrok (agent loop)Cursor
454951de27 fix(chart): keep the ascendant nakshatra the page already renders
The chart API rebuilt the ascendant without nakshatra, lord, and pada, so those cells stayed blank. Cache schema is now 7. Centered column headers line up with their cells, and the current dasha card keeps its tint without the left accent.

pytest 34 passed. tsc 0 errors. lint 0 errors and 123 existing warnings.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:46:37 +08:00
jesse-uxandGrok (agent loop) b184448871 fix(db): check callers against the adapter that actually runs
The self-hosted client was typed as a full Supabase client, so an old scoring poll called .single() on a plain promise and failed. The new DataClient only lists methods the adapter implements.

Co-Authored-By: Grok (agent loop)
2026-10-15 09:21:14 +08:00
jesse-uxGrok (agent loop)Cursor
336286e428 fix(chart): skip unused synastry overview and doomed report subprocesses
Synastry charts now skip the unused external overview and run together. Reports skip PyJHora subprocesses when that library is missing, and a full heavy-compute slot logs which paths hold it. Splitting quotas stays a simulation.

Gate, growth, and report pytest passed, as did the frontend route tests, tsc, lint, and the A/B script.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 08:02:39 +08:00
jesse-uxandGrok (agent loop) 32aa46b573 fix(release): close the first review of the production release path
Host rehearsal no longer needs Node on the production machine, and a failed cleanup now stops with the rehearsal database name. Docs-only staging heads no longer block rollback. Tests no longer hardcode Windows paths, and a trailing slash on the production site still refuses the test code.

pytest 12 passed; tsc exit 0; lint 0 errors; identity tests 9 passed, 0 cancelled. test:db was not run.

Co-Authored-By: Grok (agent loop)
2026-10-14 16:37:58 +08:00
jesse-uxandGrok (agent loop) 0dc1d8fa52 merge origin/staging into the release-path fix branch
Co-Authored-By: Grok (agent loop)
2026-10-14 15:54:45 +08:00
jesse-uxandGrok (agent loop) 29949e0a29 接受删除旧报告页,并跟上最新 staging
Independent Staging Quality Gate / validate (push) Failing after 8m31s
Independent Staging Quality Gate / publish (push) Skipped
旧的结构化报告页已由另一单删除,标识留在现在用的阅读页。测试不再读取那个文件。更新日志和 Bug 历史两边都保留。

自测:tsc 退出码 0;lint 0 error、123 warning;修复单点名的 3 个测试 7 通过、0 失败、0 取消。

Co-Authored-By: Grok (agent loop)
2026-10-14 12:27:33 +08:00
jesse-uxandGrok (agent loop) 392c1f7218 合并 staging,并去掉已删组件留下的样式名单条目
knownUnstyled 不再保留 personal-report-additional-charts。它只被删掉的报告组件用过。其它白名单没有同类残留。业务代码没改。

自测:类名合同和两条否定合同 6 通过,失败 0,取消 0。tsc 0 错,lint 0 error。

Co-Authored-By: Grok (agent loop)
2026-10-14 11:10:17 +08:00
jesse-uxandGrok (agent loop) a04e590961 合并 staging,并把长报告缓存目录登记进自行清理名单
Independent Staging Quality Gate / validate (push) Successful in 14m32s
Independent Staging Quality Gate / publish (push) Successful in 4m18s
与最新 origin/staging 合并。report_reference_cache 写入 OFFLINE_SCRATCH_NAMES。清理仍由每次读取前删掉两天前的文件完成,两个缓存模块的行为没改。

自测:test_api_scratch_retention 10、test_report_reference_perf 15、test_consult_card_full_source 12,共 37 通过。

Co-Authored-By: Grok (agent loop)
2026-10-14 10:40:43 +08:00
jesse-uxandGrok (agent loop) 00e6efdbfa 发布可以跟上只多了文档的测试环境头
四个生产工作流改用同一条发布修订:最近一次代码门禁成功的提交可以发布,后面只多文档不再挡住。生产环境拒绝测试验证码。63 个还没上生产的迁移写了分级、演练脚本和首发步骤。没有点任何生产按钮。

自测:发布修订 7 通过,演练安全 3 通过,tsc 0 错,lint 0 error。本机空库演练在服务角色读人物表处按设计停止(退出码 4,其他人物已确认行数为 0)。

Co-Authored-By: Grok (agent loop)
2026-10-14 10:24:40 +08:00
jesse-uxandGrok (agent loop) fca62fda43 给别人出报告能读到档案,对话和报告标明 AI 生成
BUG-1063:后台按列只读档案,授权前数据库拒绝读表,授权后通过。对话输入框下和报告标题下加上 AI 生成说明。状态板按已部署提交改措辞,不标 resolved。下载文件元数据没有做。

自测:tsc 退出码 0;lint 0 error;定向测试 51 通过;test:db 82 项里 13 项为 Windows 已知失败,无新增;隐私标记退出码 0。

Co-Authored-By: Grok (agent loop)
2026-10-14 09:30:51 +08:00