Commit Graph
397 Commits
Author SHA1 Message Date
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
Claude cb8004a188 merge origin/staging into api disk cache retention (issue #60)
Independent Staging Quality Gate / validate (push) Successful in 13m18s
Independent Staging Quality Gate / publish (push) Successful in 3m37s
Docs-only conflicts resolved by keeping both; 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-14 09:11:01 +08:00
Claude f4c53e7f9f merge origin/staging into home sidebar rerender (issue #59)
Independent Staging Quality Gate / validate (push) Successful in 14m30s
Independent Staging Quality Gate / publish (push) Successful in 3m43s
Docs-only conflicts resolved by keeping both; 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-14 08:09:22 +08:00
jesse-uxandGrok (agent loop) ad1dc89664 合并最新 staging 到侧栏重画这支
校正提速已经在测试线上。更新日志、缺陷记录和任务索引两边都留下。这单自己的修复还没开始。

Co-Authored-By: Grok (agent loop)
2026-10-14 07:50:24 +08:00
jesse-uxandGrok (agent loop) f197774812 合并最新 staging 到服务器内存这支
校正提速已经在测试线上。更新日志、缺陷记录和任务索引两边都留下。这单自己的修复还没开始。

Co-Authored-By: Grok (agent loop)
2026-10-14 07:37:49 +08:00
jesse-uxandGrok (agent loop) 69c739fbee 个人长报告同盘同日重试改为秒回
完整数据版在版本号明确时复用当天的结果。渲染快捷算法留下但默认关闭,本机只快了大约两成。

Co-Authored-By: Grok (agent loop)
2026-10-14 06:37:40 +08:00
jesse-uxandGrok (agent loop) 81e2e1cfed 服务器缓存按期限清理,审计快照默认不再落地
排盘缓存、官方快照、负缓存、网关任务和分盘段过期后会删掉。同一张盘的数字写法合成一把缓存键。失败快照只用短期限。自测留存、异步任务、增长合同、安全缓存和隐私标记;一万个文件的清理慢于 2 秒,命中率提升不到 2.5 倍,都按实测写入记录。

Co-Authored-By: Grok (agent loop)
2026-10-14 04:53:30 +08:00
jesse-uxandGrok (agent loop) 6350943152 回答生成时侧栏不再跟着每一帧重画
外壳只在会话、当前项或账户这些数据变了才更新。60 帧计数从注册 60 次、提交 60 次降到 0 次,点下去仍是最新一次操作。BUG-1329。

Co-Authored-By: Grok (agent loop)
2026-10-14 04:12:02 +08:00
jesse-uxandGrok (agent loop) 4c3485bc23 服务器长跑不再堆积取消监听,数据库少走几趟。
报告工人的等待到点就摘掉取消监听。本地数据库缓存表结构,并把设置身份合成一条语句,对照通过后默认打开,写成 off 仍走原来的语句。交付、重算和限流的内存表会过期。登录读缓存默认关闭,要开再设 IDENTITY_SESSION_COOKIE_CACHE=on。

自测:tsc 通过,lint 0 error,点名测试 134 通过,test:db 开关关和开都只有已知的 13 条失败,往返 49 降到 32。

Co-Authored-By: Grok (agent loop)
2026-10-14 03:32:39 +08:00
Claude ad8b24bf9b merge origin/staging into rect scoring perf (issue #57)
Independent Staging Quality Gate / validate (push) Successful in 15m24s
Independent Staging Quality Gate / publish (push) Successful in 3m39s
Docs-only conflicts (CHANGELOG, BUG_HISTORY 1318-1322 vs 1323-1325/1345)
resolved by keeping both; 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-14 02:16:09 +08:00
jesse-uxandGrok (agent loop) 8e0503f9c0 Speed up rectification scoring without changing results.
Cache work that depends only on the candidate minute, drop unread response fields, and reject windows above 241 candidates before any chart is built. Eleven canonical scenario hashes match 77057a819. Sealed and reported-offset replays match the 2026-10-08 records (changed_trial_count 8 and 581) and are stored as scoring_perf_2026_10_13.

Co-Authored-By: Grok (agent loop)
2026-10-14 02:06:14 +08:00
jesse-uxandGrok (agent loop) 6dd1ff7d0c 记下星历路径核查:本机会退回低精度,生产镜像未打开(BUG-1322)
T5 不改代码。进度、更新日志和任务索引一起补上。上游 e1909724 只作同类问题参照。

Co-Authored-By: Grok (agent loop)
2026-10-14 00:50:09 +08:00
Claude 77057a819b merge origin/staging into the rectification step-0 entry (issue #54)
Independent Staging Quality Gate / validate (push) Successful in 14m24s
Independent Staging Quality Gate / publish (push) Successful in 4m21s
Docs-only conflicts (CHANGELOG, BUG_HISTORY 1316/1317) resolved by keeping
both; agent-loop rule A (2026-10-13).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-13 22:29:01 +08:00
jesse-uxandGrok (agent loop) bccceff91f 明说要校正时,第一步就能打开(BUG-1317)
本命和申报时段的第 0 步,校正工具挂上时可以排盘,也可以直接打开校正。还没看盘就顺口提议不算已经提议过。规则第一句写明 explicitRequest=true。定向测试 149 通过,类型检查和 lint 通过,隐私标记通过。名人生平回测未跑。

Co-Authored-By: Grok (agent loop)
2026-10-13 22:02:41 +08:00
jesse-uxandGrok (agent loop) 8883f8475f 报告开头改成重点摘要卡
新报告用围栏画出大运和事业、财富、婚恋,标题下写名字与日期。旧报告不变。

自测:pytest test_report_full_data_fix.py 10 通过;相关四份报告测试退出码 0;前端相关测试 147 通过、0 失败、0 取消;tsc 退出码 0;lint 0 error。

Co-Authored-By: Grok (agent loop)
2026-10-13 21:45:43 +08:00
jesse-uxandGrok (agent loop) a295afa40f fix(report): draw charts in the full-data body and clean Chinese residue
New reports draw one north-Indian chart for each ready divisional in the body, so the trailing duplicate section drops. Chinese full-data prose no longer glues English onto Han or leaves listed, background, or native. The birth table starts with the ascendant. The D9 same-sign column says yes or no.

Self-test: tsc exit 0; npm run lint exit 0 (0 errors, 125 existing warnings); three frontend test files 39 pass, 0 fail, 0 cancelled; pytest test_report_chart_blank_columns.py 16 passed; seven related report files 88 passed, exit 0; privacy markers 63 passed.

Co-Authored-By: Grok (agent loop)
2026-10-13 14:02:26 +08:00
Jesse_ChenandClaude Opus 5.5 586561eb68 fix(settings): the ayanamsa hint says new rectifications follow the setting (BUG-1310)
Independent Staging Quality Gate / validate (push) Successful in 13m43s
Independent Staging Quality Gate / publish (push) Successful in 16m40s
Also records the 10-12 rectification batch as merged in the bug history,
changelog and task index.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
2026-10-12 15:43:27 +08:00
jesse-uxandJesse_Chen 0f05c9e26a fix(rectification): scan chart boundaries in the user's ayanamsa (BUG-1307, BUG-1309) 2026-10-12 15:36:50 +08:00
jesse-uxandJesse_Chen 74949d0475 feat(rectification): open on the nearest chart boundary (BUG-1307) 2026-10-12 15:36:43 +08:00
jesse-uxandJesse_Chen 805932addd fix(consult): mark rectification opened only after the case opens (BUG-1306) 2026-10-12 15:36:36 +08:00
jesse-uxandJesse_Chen b8bdc003c3 fix(consult): open rectification when the user asks directly (BUG-1306)
Independent Staging Quality Gate / validate (push) Successful in 19m41s
Independent Staging Quality Gate / publish (push) Successful in 3m52s
2026-10-12 14:17:05 +08:00
Jesse_ChenandClaude Opus 5.5 de4cfeb868 docs(consult): accept the career residual round as a known residual
Independent Staging Quality Gate / validate (push) Successful in 34m56s
Independent Staging Quality Gate / publish (push) Successful in 16m11s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-09 16:53:34 +08:00
jesse-ux d6eb0cfec1 fix(consult): keep career row hints off the planet nature
Career significator and house-lord rows now carry one presentation sentence. Values stay the same. A second three-repeat biography run still has one field conflict, so this is not accepted.

Not pushed.
2026-10-09 16:25:59 +08:00
jesse-ux 85c3030e96 fix(consult): limit career direction and single-flight chart warm
The career checklist now says the direction section only covers strength, resistance, timing, and three events. Warm builds one packet per cache key and skips when its own cap is full.

A three-repeat biography run still has one career answer that names a direction from a planet nature, so this is not accepted. Not pushed.
2026-10-09 15:53:51 +08:00
Jesse_ChenandClaude Opus 5.5 b4eedb7725 fix(consult): a warm that cannot be scheduled no longer fails the save (BUG-1305)
Independent Staging Quality Gate / validate (push) Successful in 13m12s
Independent Staging Quality Gate / publish (push) Successful in 4m16s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-09 15:17:00 +08:00
Jesse_ChenandClaude Opus 5.5 cd625e8a35 docs(consult): accept the full-source card and open the career-type residual brief
Independent Staging Quality Gate / validate (push) Failing after 16m54s
Independent Staging Quality Gate / publish (push) Skipped
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-09 14:08:57 +08:00
jesse-ux fc3a2e680d fix(consult): keep career type off significators and warm off the compute cap
The career checklist now says significators are only for strength and affliction. Chart-save warm no longer takes a heavy-compute slot.

Biography severe conflicts fell from 3 to 1. One career answer still names a direction from a planet nature, so this is not accepted for merge. Not pushed.
2026-10-09 10:28:44 +08:00
jesse-ux 16f9f86843 fix(consult): date the full-data cache and slim the model card
The cache key now includes the request date, and files older than two days are removed. The model card keeps values only. Parashari aspects are copied from the engine. Saving a chart warms the packet without blocking the response.

Biography severe conflicts rose from 1 to 3, so this is not accepted for merge. Not pushed.
2026-10-09 10:00:45 +08:00
jesse-ux 3874a328a5 feat(consult): copy the full-data packet into a per-domain judgment table
Dialogue cards now take numbers from the same packet as the full-data report. Each of the twelve domains gets one table the card builder assembles. Lookups allow three calls a turn. further_reading is a per-domain technique index. BUG-1293, BUG-1294, BUG-1295.
2026-10-09 10:00:45 +08:00
jesse-ux 9d3eb23ee4 feat: 完整数据版加入六种星座大运
Sthira、Drig、Shoola、Navamsha、Niryaana Shoola 与 K.N. Rao 的 Chara 从本盘算出。Lagna Kendradi 不上表。未推送。
2026-10-09 00:43:00 +08:00
Jesse_ChenandClaude Opus 5.5 3b70d1a7eb docs: accept the full-data report and record the nutation deployment
Independent Staging Quality Gate / validate (push) Successful in 14m11s
Independent Staging Quality Gate / publish (push) Successful in 4m35s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-08 22:54:10 +08:00
jesse-uxandJesse_Chen b8eef75871 fix(report): project annual sections and thicken dasha reading
完整数据版第二轮。年运章写出资料包里已有的节,没有数据的不新算。大运解释补回可能段落。瑜伽作用不再断言寿命。术语替换不进标识符。罗睺和计都不写守护第未列出宫。未合入 staging。
2026-10-08 22:30:32 +08:00
jesse-uxandJesse_Chen 25d067bf12 fix(report): fill the full-data edition and clear English Han
Add the interpretation pages from fields the engine already computed, project the annual tables the reader prints, and clear English Han on the four measured charts. Patyayini is not implemented. The generate button copy is unchanged.

This commit stays on the feature branch and is not pushed to staging.
2026-10-08 22:29:41 +08:00
jesse-uxandJesse_Chen 98c98aa535 feat(report): replace the reader edition with the full-data report
Generate the full-data edition (pl9_personal_long_report.v4) and remove the reader edition. English still contains Han, so the API withholds it (BUG-1272, investigating). This commit is not pushed to staging.
2026-10-08 22:29:31 +08:00
jesse-ux e5f2a75183 fix(ephemeris): include nutation in the sidereal frame
恒星黄道改为与 Swiss Ephemeris FLG_SIDEREAL 同一套含章动岁差。
产品默认路径不再用平岁差去减含章动的视位置。上升和宫头用同一个岁差。
校正身份升到 rectification-v5-matrix-scoring-12。
BUG-1275。未推送,未部署。v5 先验头名三格下降 1.3 个百分点,不调参。
2026-10-08 18:42:45 +08:00
jesse-ux 795b8845c7 fix(special-lagnas): compute eight birth points without PyJHora
Independent Staging Quality Gate / validate (push) Successful in 19m4s
Independent Staging Quality Gate / publish (push) Successful in 3m51s
Production images do not install PyJHora, so those eight points were blocked.
Swiss Ephemeris now computes them in-process. Rectification keeps the old
Hora and Ghati formulas.

BUG-1273.
2026-10-08 15:01:44 +08:00
jesse-ux 466ba7ec54 docs(tasks): record upstream sync6 results and scoring-11 2026-10-07 18:08:32 +08:00
Jesse_ChenandClaude Opus 5.5 0ed45a4b3a fix(chat): a model switch on an unsaved new chat stays local (BUG-1259)
Independent Staging Quality Gate / validate (push) Successful in 14m48s
Independent Staging Quality Gate / publish (push) Successful in 3m46s
Since BUG-989 a new chat is saved on its first send, and that create already
carries the session's model. selectSessionModel still PATCHed the session
right away; with no row yet the route answered 404 and the composer showed
「云端同步失败」 although the local choice had taken effect. The selection now
returns before any PATCH for an unsaved empty consultation (same predicate as
the send path). Saved chats sync as before.

Full suite 4988 / fail 24, identical to 11333460; build keeps / Static.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-07 15:04:37 +08:00
Jesse_ChenandClaude Opus 5.5 6ad0bea320 feat(rectification): start from an offer card in the consultation, come back to it (BUG-1247~1251)
TASK-rectification-in-chat-step1-20261006, direct execution.

- The homepage 生时校正 pill and the text trigger (isRectificationHandoffQuestion)
  are gone. The consult agent decides (RECTIFICATION_OFFER_RULE, one
  definition) and calls offer-birth-time-rectification; the server decides
  whether a card may show (self, product on, no case in progress,
  feature_pricing price). The offer is stored with the answer and travels on
  run.completed; the card hangs under that answer.
- Opening from the card binds the offer to the case in the consultation's own
  messages (no table change); GET/POST /api/rectification/cases/[caseId]/source
  find the source and go back: one divider (time changed or not), earlier
  answers captioned 按校正前的时间, and a 按新时间重新看 button that sends only
  when clicked. Auto-return after the post-adopt check or a terminal case, only
  for work done in this view.
- Model history skips the divider and notes answers written with the old time.

Full suite 4987 / fail 24, identical to 6ec8efd5 (4973 / 24), no test name
lost; tsc 0; lint 0 errors; build keeps / Static, first-load gzip +0.20%.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-07 12:58:58 +08:00
Jesse_ChenandClaude Opus 5.5 6ec8efd5d2 feat(rectification): server-written lines in the same warm voice (BUG-1258)
Independent Staging Quality Gate / validate (push) Successful in 13m22s
Independent Staging Quality Gate / publish (push) Successful in 3m42s
About 30 fixed rectification lines lose the receipt tone: no 「已记录。」
openings (收到 when the range holds, 好 when it moves), 麻烦 instead of 请,
时间 instead of 候选 in what the user reads, and no 「新建对话」 after
adoption. Numbers, clocks, ranges and the honesty boundaries are unchanged.
CHOICE_ACK_RE also recognises the new acknowledgements, so a model sentence
that repeats one is still dropped; the delivery guard matches the delivery
sentence by containment and does not depend on the opening.

Full suite 4973 / fail 24, identical to 61d6f248; build keeps / Static.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-07 11:39:34 +08:00
Jesse_ChenandClaude Opus 5.5 61d6f248e4 feat(rectification): warm older-sister voice; opening and read-only turns get only the Skill sections they use (BUG-1257)
Independent Staging Quality Gate / validate (push) Successful in 13m45s
Independent Staging Quality Gate / publish (push) Successful in 3m34s
Both rectification prompts now share RECTIFICATION_VOICE_HEAD, the same warm
voice as the consultation answer (no mind-reading here: these turns collect
facts). Opening and read-only turns used to send the whole bound Skill (11,812
characters for 10.0.33); they now send the sections they act on, plus the
product-identity section when the bound Skill has it. 9.0.0 still goes out
whole (BUG-621). Rule bodies, scoring, cards and adoption are unchanged.

Opening input 7,433 -> 3,892 tokens in a DeepSeek replay. Full suite 4970 /
fail 24, identical to c76fdda7; build keeps / Static.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-07 11:08:25 +08:00
Jesse_ChenandClaude Opus 5.5 c76fdda7ab refactor(consult): chat binds the method's truth boundaries, not the engine manual (BUG-1256 step 2)
Independent Staging Quality Gate / validate (push) Successful in 14m35s
Independent Staging Quality Gate / publish (push) Successful in 3m37s
The method block bound into every chat turn quoted most of SKILL.md (benchmark
scores, CLI flags, oracle queues, file paths) plus the shared method, whose
output contract asks for JSON verdicts, A/B/C/D confidence, audit tables, raw
data and web verification - the opposite of the chat shape. Chat now quotes
only the truth-boundary sections and adds CHAT_METHOD_BOUNDARIES for the
limits from the dropped sections it still has to keep. SKILL.md and the shared
method file are unchanged for reports and skill_read.

Natal system prompt 55,242 -> 26,591 characters. DeepSeek A/B on public
golden charts (flash 10 questions): input 24,560 -> 14,025 tokens, 37.8 ->
30.3 s, no regression in automatic checks or reading; a high-rigor request
still says plainly that no external check was done. Full suite 4970 / fail
24, identical to b8385adb; build keeps / Static.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-07 08:48:04 +08:00
Jesse_ChenandClaude Opus 5.5 b8385adbfe feat(consult): warm older-sister voice; read feelings within three rules (BUG-1255)
Independent Staging Quality Gate / validate (push) Successful in 14m48s
Independent Staging Quality Gate / publish (push) Successful in 3m29s
Product 2026-10-07: the answer voice becomes a knowing, gentle older sister,
matching the homepage greeting, and may read feelings: after the answer, one
sentence, with 可能 / 多半, never a guess stated as fact or a question
rewritten into a need; another person's feelings need chart evidence and only
on an unafflicted line (afflicted lines keep the range rule, BUG-1182).
Overturns the feelings part of BUG-1070.

Also removes rules that contradicted the answer shape: 'restate the same
constraint', the rectification 'say progress' line, 'answer concisely', and
'every time say what to do' (now only when things are hard).

Full suite 4969 / fail 24, identical to 52d14e8f; tsc 0; lint 0 errors;
build keeps / Static, first-load gzip unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-07 07:53:39 +08:00
Jesse_ChenandClaude Opus 5.5 171a3f25ac fix(consult): plain wrapping for answer prose; stop reading the analysis checklist aloud
Independent Staging Quality Gate / publish (push) Canceled after 0s
Independent Staging Quality Gate / validate (push) Canceled after 12m33s
BUG-1252: answer prose drops text-wrap: pretty. WebKit (every iPhone browser)
applies it to the whole paragraph, so lines came out evenly short with a blank
strip on the right and every streamed character re-broke the lines above.

BUG-1253: the condensed checklists and shared reading open with an
analysis-only note; PLAIN_SPEECH_RULE (one definition) tells the writer not to
quote layer names, signal counts, rules or house-counting, caps evidence in
brackets at two, and gives everyday words for card fields with no Chinese name
(no coined names like 合力星). Marriage layers become everyday wording; career,
wealth and health say not to announce layers.

Full suite 4966 / fail 24, identical to baseline d2c22ca2 (4962 / 24); build
keeps / Static; first-load gzip unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-06 20:19:50 +08:00
jesse-uxandJesse_Chen 6e16dc5e16 fix(rectification): keep one delivery and adopt with the birth date
Accept and GET now decide with the same birth snapshot as the answer, so an under-age probe cannot flip can_adopt. The exit skips a second write when this reply already delivered. The card stays without an adopt button when adoption is not allowed, and a refusal shows the Chinese sentence.
2026-10-06 16:03:57 +08:00
Jesse_ChenandClaude Opus 5.5 da226db1d4 fix(consult): blank-line paragraphs, drop the H2 contract line, remove the assistant avatar
Independent Staging Quality Gate / validate (push) Failing after 18m5s
Independent Staging Quality Gate / publish (push) Skipped
Acceptance fix for 28113fa0 (TASK-consult-conversational-answer-fix-20261006):
- F1: chat-answer-detail no longer pins 'Every H2 must start its own line'
  (first turns carry no H2), assertion change noted in three columns.
- F2: Good examples separate paragraphs with a blank line and the shape says
  so; .message p is pre-wrap, so a single newline only wraps.
- Product request: remove the assistant avatar on every surface (consult,
  rectification, onboarding); --assistant-content-inset back to 0px.

Full suite 4941 / fail 24, identical to baseline 86cafe68 minus a timing flake;
build keeps / Static; first-load gzip -0.1%.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-06 15:58:40 +08:00
jesse-uxandJesse_Chen 5a589a9058 fix(consult): write the first turn as chat, not a sectioned report
Ordinary consult first turns drop Markdown headings and the required
action list. People are named in the paragraph, and pinned examples no
longer contain copyable advice. BUG-1244, BUG-1245.
2026-10-06 15:58:40 +08:00
jesse-ux 137ed6f408 fix(consult): stop the consult-gate VedAstro wait and record step timing
Consult turns reuse a same-day official snapshot inside the rectification gate, or record deferred_in_consultation instead of starting another 4-second snapshot. Classification, step 0, step 1, and the time to the first answer character go into the existing usage metadata and a new admin usage column.

BUG-1231, BUG-1232
2026-10-05 02:33:36 +08:00
jesse-ux 2c64b66423 fix(gate): keep quality-gate logs readable (BUG-1230)
Summarize successful steps, print the failing check and error text,
and split the validate job into seven steps. Local npm test stays TAP.
2026-10-04 22:58:17 +08:00
Jesse_ChenandCursor baf4ae8b34 feat(narayana-rath): follow book p.43 for dual lords and node years (BUG-1227~1229)
Independent Staging Quality Gate / validate (push) Failing after 16m17s
Independent Staging Quality Gate / publish (push) Skipped
Round-7 option A is text-first, so Scorpio and Aquarius lords, the Ketu-only degree reversal, and node exaltation years now live in the Rath display layer. Scoring files stay unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 18:37:34 +08:00