Commit Graph
1509 Commits
Author SHA1 Message Date
jesseandClaude Opus 5.5 fd34df9b65 fix: rectification recap no longer repeats a date the event already carries (BUG-1496, issue #161)
Independent Staging Quality Gate / validate (push) Failing after 9m22s
Independent Staging Quality Gate / publish (push) Skipped
Staging showed 「记下了:2016-09 2016 年 9 月上大学。」. evidenceRecapLine only
recognised an unspaced 「2016年」 as the phrase's own date, so a spaced year or
an ISO / slash date got the label in front again. It now recognises
`\d{4}\s*年` and `\d{4}[-/.]\d{1,2}`; phrases without a date still get the
label. Regression test fails before the fix and passes after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 19:06:31 +08:00
jesseandClaude Opus 5.5 7721aa9a2c feat: rectification opening names the time source; unchanged range is said (issue #148)
Independent Staging Quality Gate / validate (push) Successful in 17m18s
Independent Staging Quality Gate / publish (push) Failing after 15m2s
Product decisions 2026-10-28 (issuecomment-36121):
- The opening's window sentence says where the reader's time came from
  (出生记录时间 / 大概时间 / 你填的时间 / 时间段), still one sentence. When the
  source is known the server writes the opening; unknown and legacy get none.
- When a turn recorded events, the rescore completed and it is not the
  delivery turn, an exactly unchanged range gets
  「这件事在现在的范围里每个时刻都对得上,分不出前后。」. It never invites
  more events (BUG-1084).
- Not done, by decision: per-layer Lagna/nakshatra/dasha narration
  (BUG-606/1253), precision-gated layers (scoring), voluntary/involuntary
  career exits, "what would narrow it further" (BUG-1084).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:28:50 +08:00
jesseandClaude Opus 5.5 8e932959b5 feat: rectification screen — timeline-only minute, board on demand, result card (issues #146, #147)
- The working minute is written once, on the timeline; the board's title row
  no longer repeats it.
- 「看盘面」 sits in the header at every width; the board is closed by default
  and opens as a right column on desktop (bottom sheet on phones).

- A distinct result (D4) leads with 最可能的出生时间 + minute + Lagna; the range
  drops to the next line. Indistinct results keep the range headline (D3).
- The most likely column adopts with 「采用 HH:MM 并打开星盘」 and goes to /chart
  after the server saved it; other columns stay adoptable as 「改用这个」 under
  还不能排除. No confidence label. Record-conflict wording unchanged.
- 「我说错了,改一条」: confirmed events (from the case read's existing evidence
  list) prefill the composer; nothing is sent by the pick. No 「再补一件事」:
  the card must not invite more events (BUG-1084, issue #148 decision).
- The segment card keeps "which chart" (BUG-1151): no minute lead, same
  adopt label, same actions row.

Docs: DESIGN §10/§11/§12, VOICE, CHANGELOG.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:23:04 +08:00
Jesse_ChenandClaude f80f3b75f8 Merge origin/staging into upstream sync 9 batch B (issue #159)
Independent Staging Quality Gate / validate (push) Successful in 18m34s
Independent Staging Quality Gate / publish (push) Successful in 5m14s
Co-Authored-By: Claude (agent loop) <noreply@anthropic.com>
2026-10-28 17:23:59 +08:00
jesseandClaude Opus 5.5 dfd3208979 feat: standalone rectification entry at /rectification (issue #145)
Independent Staging Quality Gate / validate (push) Failing after 13m25s
Independent Staging Quality Gate / publish (push) Skipped
- Sidebar 「生时校正」 under 星盘, behind a new account `rectification` flag.
- /rectification page: status card from entry-summary (not started / in
  progress with window and confirmed event count / adopted time), a short
  data check, then the home rectification surface (?rectify=1, or
  ?rectify=new to start over; ?c=<id> to continue or view). No price on
  the page.
- entry-summary gains session id, candidate range, confirmed evidence count
  and adopted times (add-only migration 20261028170000).
- The offer card under a consultation answer becomes one line and a link
  to /rectification; an explicit request in chat also goes there. No case
  is opened from a conversation any more.
- Starter home shows a rectification prompt for self charts with an
  estimated time; onboarding checklist gains 做一次生时校正 for them.
- Chart-page link points to /rectification. Shell registers its router so
  home hooks can navigate client-side without useRouter in Home().
- Docs: VOICE, DESIGN, CHANGELOG, device checklist.

Self profile only; other people are issue #160.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 16:50:55 +08:00
jesse-uxandGrok (agent loop) 5c5f333d4d fix(varga): port the five sarpa ranges and the 22nd drekkana house (BUG-1494, BUG-1495, issue #159)
Upstream 50847e57, ported semantically:

- Sarpa Drekkana now accepts the five classical ranges (Cancer 2/3,
  Scorpio 1/2, Pisces 3) and partitions on the raw longitude instead of
  the rounded display degrees.
- The 22nd Drekkana is the eighth house of D3 (+7), not +21 zodiacal
  ten-degree divisions.

scripts/varga.py is part of the extended frozen identity, so the sealed
holdout and the reported-offset sweep were re-frozen under ERR-110:
20/20 sealed trials and 900/900 sweep trials match the sync8 records on
every compared field, and the metrics, summary and widening geometry are
unchanged.

Tests: the upstream varga/ sarpa files are added under
tests/test_upstream_sync9b_*.py; the stale +21 assertion and the sarpa
definition string are updated with the original/new/reason columns in
PROGRESS.

Co-Authored-By: Grok (agent loop)
2026-10-28 16:25:45 +08:00
Jesse_ChenandClaude Opus 5.5 699e353887 Rectification turns no longer spend a model call reading the case (issue #136, BUG-1491)
Step 0 of every turn could only call rectification-read-case with the
default projection, a result the server can compute. The runner now runs the
agent's own read-case tool after the Skill is bound (same tool, receipts and
projection), passes the call and result to the model as the turn's opening,
and gives step 0 the full tool set. Synthetic chunks go through the same loop
(case.loaded, activity and Skill receipt once each) but not into step timings.
The synthetic call carries a short reasoning line: thinking-mode DeepSeek
rejects a prior tool call without reasoning_content (checked live). read-case
stays callable for resume / full_diagnostics. Agents without listTools keep
the step-0 read. The Skill package has no "read first" text; prompts updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:27:27 +08:00
Jesse_ChenandClaude Opus 5.5 2fbce95536 Frontend drops 15 files no page reaches (issue #139, BUG-1480)
Unreachable from every app entry and frontend/scripts (dynamic imports
counted): chart-basics-tab, error-toast, seven unused shadcn ui files
(skeleton among them), three birth-time helpers only tests used, the motion
provider shell (it imported motion/react statically), and the two empty
people/account stores. Tests that only exercised them are removed or trimmed,
each with old/new/reason notes. Unreachable files 18 -> 3 (all kept on
purpose); npm test names drop exactly the 4 removed and 1 renamed test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 12:43:07 +08:00
Jesse_ChenandClaude Opus 5.5 06d0c7dc37 Cold /chart, /people, /synastry read in one round and stop re-reading the shell's data (issue #127, BUG-1478)
- The HTML early-read script also runs on /chart, /people and /synastry:
  account, people list and the current person's sessions, plus on /chart the
  remembered person's chart-view (bound to that person, page deadline kept).
  The model list stays home-only.
- Account and people-list early reads hand one clone to the shell and one to
  the page, once each, in either order; later reloads go to the network.
- Synastry sends product-access, account, people and history together; access
  is still decided before anything about people paints.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 12:11:03 +08:00
Jesse_ChenandClaude Opus 5.5 16fcb8c289 A ?c= link reads its conversation in the HTML's first round (issue #126, BUG-1477)
Independent Staging Quality Gate / validate (push) Successful in 15m37s
Independent Staging Quality Gate / publish (push) Successful in 8m8s
The early-read script now also sends /api/sessions/<id> when ?c= carries a
valid session id (same rule as parseSessionUrlQuery), next to the account.
Only the home bootstrap takes it, bound to that id and once: the lookup for a
conversation off the first page, or the landing fetchSessionDetail. 401/404/
error handling and notices are unchanged; a failed early read refetches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 11:59:01 +08:00
Jesse_ChenandClaude Opus 5.5 18c6e13028 Consult card keeps parsed packets in memory, prewarms each turn, writes 0600 (issue #129, BUG-1476)
Independent Staging Quality Gate / publish (push) Canceled after 0s
Independent Staging Quality Gate / validate (push) Canceled after 11s
- consult_packet_view keeps the last 3 parsed packets with their shared domain
  base (~30 MB each). A hit reads no file and copies nothing: attach for one
  domain 0.106 s -> 0.002 s. Memory holds the file's JSON round trip, i.e.
  exactly what a hit returned before; consult_card_facts sha256 equal old/new.
- Cache files are created 0600, same bytes as before.
- The consult route fires a warm for the turn's chart before reserving credit,
  so the day's first question does not build the packet on the answer path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 11:57:53 +08:00
Jesse_ChenandClaude Opus 5.5 a81b32349f First screen drops date-fns, the auth client and the report export (issue #125, BUG-1475)
Independent Staging Quality Gate / validate (push) Successful in 14m54s
Independent Staging Quality Gate / publish (push) Successful in 4m7s
- parseBirthDate/formatBirthDate: hand-written yyyy-MM-dd with the same strict
  round-trip check; equal to the date-fns version on 97,507 inputs.
- Sign-out imports the better-auth client on click.
- The share report export downloads at idle after first paint; once loaded,
  share writes the clipboard inside the click exactly as before.
- page.tsx: drop the unused consultationReportMarkdown import.

gzip-9 of every referenced JS/CSS: / -29,240 B (still Static); /chart, /people,
/reports about -29 KB; /ephemeris -23.6 KB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 11:35:09 +08:00
Jesse_ChenandClaude Opus 5.5 55ebdd7a95 Home first screen no longer carries the rectification surface or react-markdown (issue #124, BUG-1474)
Independent Staging Quality Gate / publish (push) Canceled after 0s
Independent Staging Quality Gate / validate (push) Canceled after 9m27s
page.tsx imported the whole rectification surface statically; its verification
report also imported chat-markdown-view statically, which pulled react-markdown
into / even though chat-message-content already loaded it lazily.

- Home renders a same-named lazy wrapper; openRectificationCase starts the
  download with the open request and awaits it before setting the ids that
  mount the surface, so it still reveals once, drawn.
- The markdown loader moves to lib/chat-markdown-loader; the home bootstrap
  awaits it before revealing a conversation with messages (no plain-text flash
  on ?c=). The blank home does not wait.

/ first load, gzip-9 of every referenced JS/CSS: 704,165 -> 609,606 B (-13.4%),
still Static.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 11:25:43 +08:00
Jesse_ChenandClaude Opus 5.5 ea7dd95757 Window consultation sends its two chart requests together (issue #128, BUG-1473)
Independent Staging Quality Gate / publish (push) Canceled after 0s
Independent Staging Quality Gate / validate (push) Canceled after 9m48s
executeWindowConsultation awaited /api/declared_window_chart before sending
/api/rectification/v5/range_reading, which does not depend on it. Both now go
out at once; a failed range reading still only drops the minute-sensitive
themes. Two 150 ms stubs: ~150 ms total instead of ~300 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 11:16:11 +08:00
Jesse_ChenandClaude Opus 5.5 ad801a5db7 Home and the chat chart no longer re-render on every streamed frame (issue #123, BUG-1472)
Independent Staging Quality Gate / publish (push) Canceled after 0s
Independent Staging Quality Gate / validate (push) Canceled after 2m12s
Home subscribed to the whole streamingReply object, so each animation frame of
an answer re-ran the page (header, picker, composer, overlays) and the desktop
natal panel under it. ChatStreamingTranscript now subscribes for its session
and feeds ChatTranscript; Home reads one derived boolean for the stop label.
ChatChartSplit is memoized. 100 frames: Home <=2 commits (was >=100), panel 0.

Two source-contract tests now pin the new component instead of the old names.
The onboarding typewriter still ticks at Home level (out of this ticket).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 11:13:55 +08:00
Jesse_ChenandClaude Opus 5.5 584a72454b Chart head, inspector, chart-type sheet and dark-mode fills tidied (issue #140, BUG-1470)
Independent Staging Quality Gate / validate (push) Successful in 16m53s
Independent Staging Quality Gate / publish (push) Successful in 4m23s
- Composer cancels InputGroup's dark-mode fills too (BUG-1466 covered light only).
- Chart head controls share one 32px height, tags 28px, per the signed prototype;
  the birth line moves under the name so the phone top bar is one line.
- Inspector card has one fixed height and scrolls inside.
- Chart-type sheet header is a row (SheetHeader ships flex-col).
- Restore shadcn's base border-color rule: bare kit borders were drawn in
  currentColor, a white line in dark mode; the phone chart sheet pads once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoz1Qk3y9buDv1mkmTu
2026-10-28 06:29:41 +08:00
Jesse_ChenandClaude Opus 5.5 142595f810 Chart and people pages no longer load the city table up front (issue #120, BUG-1469)
Independent Staging Quality Gate / publish (push) Canceled after 0s
Independent Staging Quality Gate / validate (push) Canceled after 11m35s
The birth editor on /chart now loads when the pen row is clicked (warmed on
hover/focus), the people page's add/edit form is fetched after mount, and
the people city column reads the on-demand table. /chart first load
-116 KB gzip, /people -111 KB; home +0.19%, still static. A static import
graph test keeps the table out of both pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoz1Qk3y9buDv1mkmTu
2026-10-28 06:18:05 +08:00
Jesse_ChenandClaude Opus 5.5 7444964859 Test the first progress line against the held stream, not a wall clock (BUG-1468)
Independent Staging Quality Gate / validate (push) Successful in 16m12s
Independent Staging Quality Gate / publish (push) Successful in 3m57s
The 300 ms budget failed twice on the gate runner while the test takes about
74 ms locally. What it proves is that the line shows before the server
answers, so assert that the controllable stream has not answered yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-28 05:41:04 +08:00
Jesse_ChenandClaude Opus 5.5 0f0fea325e Sidebar session menu and drag on every page (issue #116)
Independent Staging Quality Gate / validate (push) Failing after 15m9s
Independent Staging Quality Gate / publish (push) Skipped
Rename, delete with confirmation, pin, share and reorder moved from Home's
session hook into the shared (app) shell, so /chart, /ephemeris, /reports
and /people rows get the same menu and drag as /. Home only adds its paging
cursor, what the open conversation does when deleted, and which local chats
are unsaved. BUG-1467.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-28 01:52:47 +08:00
Jesse_ChenandClaude Opus 5.5 36fd4b2c83 Chart page back to the signed-off prototype (issue #114, round 5)
Independent Staging Quality Gate / validate (push) Successful in 23m11s
Independent Staging Quality Gate / publish (push) Successful in 5m14s
Round 3 followed the competitor screenshots instead of prototype v2.
Restored from the prototype source: page head (name, system switch,
report and chat buttons), layer row left / style right, the caption
strip with dasha chips, north board drawn from house centroids with sign
glyph + name + house number, dignity colours and " R", twelve house
theme chips with dots, wrapped antardasha chips, card hints, inspector
empty state, deep-reading hints, chevron date steps and 此刻, year axis
under the mahadasha scroll, three-column birth data. Point layers stay
in the layer group; side triangles stack bodies so nothing leaves the
frame (BUG-1465 test kept).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-27 17:28:14 +08:00
Jesse_ChenandClaude Opus 5.5 47f6eb4791 Composer no longer greys out when empty; tidy sidebar session rows (BUG-1466)
Independent Staging Quality Gate / validate (push) Successful in 22m32s
Independent Staging Quality Gate / publish (push) Canceled after 2m43s
InputGroup's has-disabled: classes matched the disabled send button and
greyed the whole empty composer; ChatComposer cancels both. Sortable
session rows drop the always-on grip column: mouse drags the row (6px),
touch long-presses (250ms), a drag never opens the row, and the grip
stays only for keyboard sorting, visible on focus. The row menu shows on
hover, focus or the current row on hover-capable devices.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-27 17:02:54 +08:00
Jesse_ChenandClaude Opus 5.5 43c5a81a50 Chart page layout cleanup (issue #114, round 3, BUG-1465)
Independent Staging Quality Gate / validate (push) Successful in 19m20s
Independent Staging Quality Gate / publish (push) Successful in 4m47s
North board: each house gets fixed slots for its sign name, bodies, tags
and transit glyphs, so names no longer pile up at the centre and corners
and right-hand bodies stay inside the frame. Card body grid column is
minmax(0, 1fr), so the board no longer overflows the card on phones.

Board card keeps two control rows (type, one layer row incl. point
layers); north/south moves into the card header; the duplicate caption
strip is gone. House themes list occupied houses; antardashas sit in one
row; glance grid aligned; date field no longer full width; the time tab
shows only Chara/Yogini below the Vimshottari scroll.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-27 16:30:05 +08:00
jesse-uxandGrok (agent loop) 5289afbbfe fix(home): fill missing saved-person fields before the home page reads them
Accounts that already saved another person crashed on the home page because the chart list left birthTimeClue out. The list entry now starts from an empty profile, then keeps every field the API sent.

Checks: tsc exit 0; lint 0 errors (122 existing warnings); chart-library-normalize 2 pass; related tests 38 pass; npm test 5268 tests, 5235 pass, 33 fail, 0 cancelled. Those 33 are the existing Windows set, including the 13 names in windows-known-failures.txt.

Co-Authored-By: Grok (agent loop)
2026-10-27 14:49:16 +08:00
Jesse_ChenandClaude Opus 5.5 941effe803 Chart page data tables and point layers (issue #114, round 2)
Independent Staging Quality Gate / validate (push) Successful in 16m22s
Independent Staging Quality Gate / publish (push) Successful in 4m26s
Adds /api/chart_points, a thin route over existing producers (upagrahas,
Swiss-Ephemeris special lagnas, Yogi points, arudha padas, friendship), and
the chart page's 数据表 (planets, upagrahas, special lagnas, arudhas,
shadbala detail, friendship) plus a 标点 layer that marks every point of one
group on the board. The ashtakavarga matrix gains the ascendant's own row.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-27 13:31:35 +08:00
Jesse_ChenandClaude Opus 5.5 e80bc64d93 Chart page on one sheet with a clickable North/South board (issue #114)
Independent Staging Quality Gate / validate (push) Successful in 15m27s
Independent Staging Quality Gate / publish (push) Successful in 4m27s
The chart page is now one page: board and inspector beside the nine-body
table, house themes, dasha strip and summary, with four deep-reading tabs
below (time, strength, yogas, chart book). Clicking a body or house draws its
rulership and aspect lines and fills the inspector. Shadbala, yogas and the
birth tithi come from the natal packet; ashtakavarga and house strength are a
new lazy layer; the transit layer takes any date. The chat's natal panel
carries the same board, opens by default, and is a bottom sheet on phones.

Logged two engine bugs found on the way (BUG-1462 sunrise, BUG-1463
/api/shadbala); neither is fixed here.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-27 12:47:14 +08:00
Jesse_ChenandClaude Opus 5.5 e433c0e4a8 解读校验放过「不一定会」(BUG-1461 复验补修)
Independent Staging Quality Gate / publish (push) Canceled after 0s
Independent Staging Quality Gate / validate (push) Canceled after 6m8s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-27 11:31:11 +08:00
Jesse_Chen 6cabad92e0 Merge remote-tracking branch 'origin/staging' into codex/voice-reading-20261027
# Conflicts:
#	CHANGELOG.md
#	docs/BUG_HISTORY.md
2026-10-27 11:18:13 +08:00
Jesse_ChenandClaude Opus 5.5 cad28ddc04 报告前面加一段模型写的解读(issue #113 R1)
引擎在同一份 packet 上给出与对话同源卡相同的事实(include_reading_facts),
报告任务交付前用一次结构化模型调用写八节解读,校验不过或失败就不出解读、
报告照常交付。解读存在计算快照里,读接口一起返回,页面放在引擎正文之前,
后面标「计算依据」。用量按实际 token 记账(BUG-1460、BUG-1461)。

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-27 11:17:56 +08:00
Jesse_ChenandClaude Opus 5.5 8e05e4114b 起步问句只在今日星语没带星座时才读盘(BUG-1459 复验补修)
Independent Staging Quality Gate / validate (push) Successful in 29m5s
Independent Staging Quality Gate / publish (push) Successful in 5m29s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-27 10:29:29 +08:00
Jesse_ChenandClaude Opus 5.5 de9d4826c1 #111 第 3 轮:建档不退回加载、右栏能拖宽、清单不迟到、月亮问句与别人的上升句(BUG-1455~1459)
- 建档重读人物名单时保留旧名单,失败也不卡在加载画面(BUG-1455)
- 对话右栏改用自己的拖宽把手,侧栏与右栏都能用方向键(BUG-1456/1457)
- 启程清单胶囊和首页一起出来,读状态时用上次的样子占位(BUG-1458)
- 起步第一问与别人的天空过场读一次已算好的星盘取星座,上升只在不会换座时用(BUG-1459,产品 10-27 同意)
- 补回删减的断言与三栏说明;登录代码改回原样,替身放进测试;删旧校正画面的无用样式
- 首屏 +7.54% 产品已接受,写进 DESIGN

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-27 10:24:57 +08:00
Jesse_ChenandClaude Opus 5.5 6fd67f8679 对话依据写进正文,宫位带生活领域(issue #113 C1)
产品 2026-10-27 拍板「R1 C1」。依据不再放段尾括号复述,改成正文里
「因为……」半句;宫位第一次出现带生活领域(十二宫一张表);时间最多
三件、由近到远;问事业、钱、时间时结尾不猜动机。

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-27 10:01:55 +08:00
Jesse_ChenandClaude Opus 5.5 75cf7ad0e0 merge origin/staging into the UI kit fix (issue #111); renumber BUG-1444..1450 to 1448..1454
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-27 09:55:57 +08:00
jesse-uxandGrok (agent loop) 9ca933968c Resume an unfinished rectification from the chart link.
Independent Staging Quality Gate / validate (push) Successful in 17m49s
Independent Staging Quality Gate / publish (push) Successful in 3m55s
The chart page now continues a case already open instead of showing a conflict. Someone else's chart no longer offers that link.

tsc exit 0. lint 0 errors, 122 warnings. Precheck and chart-page tests 56 pass. Opening tests 70 pass.

Co-Authored-By: Grok (agent loop)
2026-10-27 07:43:40 +08:00
jesse-uxandGrok (agent loop) 903d206f3b State the rectification opening limit.
The fixed opening and the model brief now say the step does not guarantee a single minute, and an opening that skips that limit falls back. Assertion updates record old value, new value, and why. Ran the opening copy tests: 0 fail. tsc --noEmit exit 0. npm run lint 0 errors.

Co-Authored-By: Grok (agent loop)
2026-10-27 03:52:13 +08:00
jesse-uxandGrok (agent loop) 24d645ea48 Show the ascendant precheck under the birth line.
The chart header adds one sentence and a self-only rectification link. The 46px row grows only while that sentence is present. Ran tests/chart-page-view.test.tsx and tests/chat-session-url.test.ts with the precheck batch: 0 fail.

Co-Authored-By: Grok (agent loop)
2026-10-27 03:52:12 +08:00
jesse-uxandGrok (agent loop) ccfe49e78f Attach the ascendant precheck to the chart request.
The D1 segment scan runs beside the natal chart with a 3 second timeout. A failed scan omits the field and still returns the chart. Ran tests/lagna-precheck-chart.test.ts: 3 pass, and tests/chart-view-route.test.ts passed.

Co-Authored-By: Grok (agent loop)
2026-10-27 03:52:12 +08:00
jesse-uxandGrok (agent loop) c3f69ef724 Add the ascendant precheck time window.
Hospital, family, approximate, period, and unknown birth sources map to the scan window. Adopted times and legacy imports stay quiet. Ran tests/lagna-precheck.test.ts: 2 pass.

Co-Authored-By: Grok (agent loop)
2026-10-27 03:51:59 +08:00
jesse-uxandGrok (agent loop) 4fcade7238 启程清单、提示和动效改到页面出来后再载入。
首屏 gzip-9 从比基线多 11.05% 降到多 7.54%。首页仍是静态页。加载时不转圈。

Co-Authored-By: Grok (agent loop)
2026-10-27 02:33:04 +08:00
jesse-uxandGrok (agent loop) 4d63580708 补上类型检查和 lint 没过的几处。
测试里的类型标注补全。侧栏拖宽把手改用组件库按钮,样子仍是 6px 透明细条。报告列表换人时不再在渲染中改引用。删掉已经没人用的证据回执类名。

Co-Authored-By: Grok (agent loop)
2026-10-27 01:58:07 +08:00
jesse-uxandGrok (agent loop) 6998dc6ead 顺手收掉死样式、旧校正入口和整页跳转。
测试文档只在需要的测试里安装。提示和圆点按项分开。清单「去做」走客户端跳转。输入框高亮在离开页面时清掉。六个没有入口的旧校正组件删掉。

Co-Authored-By: Grok (agent loop)
2026-10-27 01:39:28 +08:00
jesse-uxandGrok (agent loop) d7e8cc46c2 人物目录没到时不再当成没建完档(U11)。
目录还没回来时不闪「看谁的盘」,热启动也不因此走冷路径。已知是空的,仍然算没建完档。月亮星座和天空副句的上升,首页没有现成资料,不新发请求,也不编星座。

Co-Authored-By: Grok (agent loop)
2026-10-27 01:23:18 +08:00
jesse-uxandGrok (agent loop) b2a561b34c 被放宽的抽屉、外观和设置测试改回点按检查(U10)。
Co-Authored-By: Grok (agent loop)
2026-10-27 00:51:11 +08:00
jesse-uxandGrok (agent loop) 3223d06d1d 组件类名并回原有函数,验证码输入钉在 1.5.0(BUG-1450)。
Co-Authored-By: Grok (agent loop)
2026-10-27 00:08:27 +08:00
jesse-uxandGrok (agent loop) c6c69aa04b 拖动排序一次写完,新对话仍排在最上面(BUG-1449)。
Co-Authored-By: Grok (agent loop)
2026-10-27 00:03:59 +08:00
jesse-uxandGrok (agent loop) 413c1fde12 启程清单关掉后不再翻报告,加人后不用刷新就打勾(BUG-1448)。
Co-Authored-By: Grok (agent loop)
2026-10-26 23:45:23 +08:00
jesse-uxandGrok (agent loop) 7fe335c7e0 启程动效只在启程里播,慢网时不再把内容藏起来(BUG-1447)。
清单已关不播。动画代码没到手或超过 300 毫秒,内容保持可见。

检查:onboarding-motion-gate、onboarding-motion-20261022、onboarding-hint-observer。
结果:10 通过,0 失败,退出码 0。

Co-Authored-By: Grok (agent loop)
2026-10-26 23:19:59 +08:00
jesse-uxandGrok (agent loop) 846ed6cca6 没有待出提示时不再扫整页(BUG-1446)。
提示都看过、清单已关、或正在写回答时,不挂监听。需要时只盯锚点旁边,不再跟着每个字扫整页。

检查:onboarding-hint-observer 与 onboarding-checklist-20261022。
结果:14 通过,0 失败,退出码 0。

Co-Authored-By: Grok (agent loop)
2026-10-26 23:14:30 +08:00
jesse-uxandGrok (agent loop) 10ecb091a8 报告和合盘的中英切换能看出选中了哪个(BUG-1445)。
选中项改认页签自己的标记。边框和文字用主题色,背景保持中性。整篇和自选重新描上主题色边框。

检查:language-switch-selected 1 通过;report-buttons-scope 与 class-name-definition-contract 共 9 通过。两轮都是 0 失败,退出码 0。

Co-Authored-By: Grok (agent loop)
2026-10-26 23:07:08 +08:00
jesse-uxandGrok (agent loop) 38097ca82f 桌面加载和打开本命盘不再把整页卸掉再挂上(BUG-1444)。
侧栏和对话列始终留在原来的容器里。分栏到达、窗口跨过手机断点,子组件只挂载一次。

检查:在 frontend 下跑 shell-frame-stable-mount、sidebar-contract、chat-chart-panel-state、class-name-definition-contract。
结果:52 通过,0 失败,退出码 0。

Co-Authored-By: Grok (agent loop)
2026-10-26 22:56:23 +08:00
jesse-uxandGrok (agent loop) d0cf53c45a 侧栏流式检查等名单补完再数帧,门禁才能继续(BUG-1441)。
Independent Staging Quality Gate / validate (push) Successful in 14m48s
Independent Staging Quality Gate / publish (push) Successful in 8m33s
run 5414 还剩 30 条会话那一条。页面不改。

Co-Authored-By: Grok (agent loop)
2026-10-25 17:01:35 +08:00