Commit Graph
835 Commits
Author SHA1 Message Date
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 05a2431208 docs(tasks): board row for #85
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-21 14:16:51 +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_ChenandClaude Opus 5.5 cb3bc330eb docs(tasks): synastry staging fix brief (create fails on missing gte)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-21 14:02:22 +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
06dba28d3a docs(tasks): accept synastry report chat after the dasha wording fix
Independent Staging Quality Gate / validate (push) Successful in 15m56s
Independent Staging Quality Gate / publish (push) Failing after 24m38s
The follow-up checker now rejects a shifted antardasha or English mahadasha, and the onboarding source contract matches the new sentence.

Co-Authored-By: Claude (agent loop) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 08:52:53 +08:00
jesse-uxandCursor 549e37b995 fix(synastry): check the dasha sentences the report actually writes
A shifted antardasha or English mahadasha was passing because the checker only recognized 大运 and 子运.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 07:36:32 +08:00
4702757974 docs(tasks): reject synastry report chat until dasha wording is checked
A wrong antardasha or English mahadasha date still passes the follow-up checker, and the home onboarding source contract was left behind.

Co-Authored-By: Claude (agent loop) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 00:30:15 +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_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_Chen 463e13fa23 merge origin/staging into marriage match p1 (只碰文档, issue #79)
Independent Staging Quality Gate / validate (push) Successful in 14m3s
Independent Staging Quality Gate / publish (push) Successful in 4m33s
2026-10-18 21:44:38 +08:00
jesse-uxGrok (agent loop)Cursor
300a8842d3 fix(synastry): keep the scripts root file count inside the budget
Move the three local glue modules into scripts/marriage_match_service and point the invocation matrix at marriage_match.py. The upstream engine file stays where it is.

Checked the file-count and oracle contracts, the marriage-match tests, and a Windows full pytest. The 176 failures are python3-missing and path-separator noise; the named contracts passed.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 21:33:30 +08:00
Jesse_ChenandClaude Opus 5.5 76c152d0ef docs(tasks): board row for #84
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 20:43:59 +08:00
Jesse_ChenandClaude Opus 5.5 5c3704166e docs(tasks): follow upstream 7a773d13 (D4 key, single-language, Niryaana Shoola PVR)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 20:39:55 +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
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-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_ChenandClaude Opus 5.5 e7bf60c1f2 docs(tasks): board row for #83
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 15:31:32 +08:00
Jesse_ChenandClaude Opus 5.5 04a70923f1 docs(tasks): synastry report → chat brief
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 15:19:45 +08:00
Jesse_ChenandClaude Opus 5.5 2b234493c6 docs(tasks): synastry analysis logic folded; technical summary follows upstream appendix
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 15:09:36 +08:00
Jesse_ChenandClaude Opus 5.5 a801985d4f docs(tasks): synastry report shows reasons inline and a dasha timeline
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 15:01:27 +08:00
Jesse_ChenandClaude Opus 5.5 ec30f4193e docs(tasks): synastry report as relationship portrait; #79 backend-only
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 14:41:08 +08:00
Jesse_ChenandClaude Opus 5.5 128b5e25b0 docs(tasks): board rows for #81 #82
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 13:29:26 +08:00
Jesse_ChenandClaude Opus 5.5 a84136b362 docs(tasks): full-reading module parity brief (5 upstream modules)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 13:20:38 +08:00
Jesse_ChenandClaude Opus 5.5 47b4a23174 docs(tasks): synastry full report brief; #79 becomes engine + picker (no billing)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 13:15:51 +08:00
Jesse_ChenandClaude Opus 5.5 c4c983cf2a docs(tasks): marriage match follows upstream bde5d615 (35-point core, order-independent)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-18 13:04:46 +08:00
Jesse_ChenandClaude Opus 5.5 bafa296829 docs(tasks): marriage match engine ports upstream marriage_match.py
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-17 22:09:33 +08:00
jesse-uxandGrok (agent loop) 1ba473970f 避免四舍五入和缺区间把还可能的时间从目前范围里藏掉。
Co-Authored-By: Grok (agent loop)
2026-10-17 21:16:32 +08:00
Jesse_ChenandClaude Opus 5.5 edf25918b2 docs(tasks): link sync8 to issue #80
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
2026-10-17 18:35:50 +08:00
Jesse_ChenandClaude Opus 5.5 b5e0f9c215 docs(tasks): upstream sync8 brief from author fix branch caf1ed4e
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
2026-10-17 18:34:39 +08:00
Jesse_ChenandClaude Opus 5.5 d4e5ca3207 docs(tasks): marriage match rules switch to practitioner consensus
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-17 17:03:44 +08:00
Jesse_ChenandClaude Opus 5.5 e077667c08 docs(tasks): people archive limit 20 + marriage match phase 1 briefs
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-17 16:47:36 +08:00
Jesse_ChenandClaude Opus 5.5 712a0fd2a1 docs(rectification): narrower delivery brief + width funnel and karaka-interval research
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-16 23:21:23 +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) fbf04f0b5f 把被逐字锁定的年运函数改回原样,历史清单不再要求已删除的占位文件。
Independent Staging Quality Gate / validate (push) Successful in 14m11s
Independent Staging Quality Gate / publish (push) Successful in 3m43s
年数表字面量留在 calc_mudda_with_dasha_balance 里。调用矩阵测试改为确认这两个路径已删并由现行模块接替。pytest 三条文件 187 通过、1 跳过、0 失败。

Co-Authored-By: Grok (agent loop)
2026-10-16 09:02:20 +08:00
Jesse_ChenandClaude Opus 5.5 ef9ee62a6b docs(tasks): dasha unify fix brief (agent loop, issue #69, bounce 1)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-16 08:35:02 +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_ChenandClaude Opus 5.5 32b238cf86 docs(tasks): beta safety net fix brief 2 (agent loop, issue #75)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-15 16:48:54 +08:00
jesse-uxandGrok (agent loop) 5c0d895391 fix(release): daily backups no longer replace the recovery point
Product chose to keep the scheduled backup, but the current recovery point must stay the one created by hand. Daily runs still encrypt and restore-verify, then record a separate latest-backup note.

Co-Authored-By: Grok (agent loop)
2026-10-15 16:16:48 +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_ChenandClaude Opus 5.5 2d41338897 docs(tasks): beta safety net fix brief, daily backup leaves the recovery point alone (agent loop, issue #75)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-15 15:44:49 +08:00
Jesse_ChenandClaude Opus 5.5 9fae294532 docs(tasks): beta capacity fix brief (agent loop, issue #76, bounce 1)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-15 15:10:37 +08:00
jesse-uxandGrok (agent loop) 53d8df257d 给内测补上每日加密备份、宕机告警和日志上限。
主机安装和一次恢复演练留给产品。页面没有变化。

Co-Authored-By: Grok (agent loop)
2026-10-15 12:58:34 +08:00
Claude ef49257b73 merge origin/staging into answer effort ab (issue #65)
Independent Staging Quality Gate / validate (push) Successful in 14m3s
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 11:15:23 +08:00