Commit Graph
733 Commits
Author SHA1 Message Date
Jesse_ChenandClaude Opus 5.5 451a58089a docs(tasks): correct how BUG-1011 must be fixed
Gate run 2857 on 36a73761 ran 3,762 tests with one failure, the report
snapshot database test, so it is the last thing between staging and a deploy.

The brief told the executor to move the shared psql and psqlAs helpers to
stdin. That instruction is withdrawn. The two helpers serve 522 calls across
29 test files, and psql -c runs a multi-statement string as one implicit
transaction. selectAsAuthenticated relies on that: it sets the JWT subject
with set_config(..., true), which lasts only for the current transaction.
Statement-at-a-time execution would run every later RLS query with no user
set, so those tests would stop testing what they claim to test. Five other
files also write their own begin, commit or rollback.

The brief now asks for a separate single-transaction stdin helper with an
explicit maxBuffer, used only by the snapshot test, with a test proving a
transaction-local set_config stays visible. It also says that if the snapshot
test then fails a real assertion, that is a product defect to report, not an
assertion to relax.

Privacy scan on this tree before push: zero findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-09-23 17:29:44 +08:00
jesse-uxandClaude Code 15036465ee docs: record staging gate result
Record Gitea run 2857 evidence: H1-H3 pass, BUG-1011 remains the sole E2BIG failure, publish skipped, and staging is not deployed. Mark BUG-1012 through BUG-1014 resolved at the code-contract level while retaining the deployment blocker.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-23 17:18:09 +08:00
jesse-uxandClaude Code 36a737616c fix(frontend): repair staging breakpoint and focus contracts
Independent Staging Quality Gate / validate (push) Failing after 12m24s
Independent Staging Quality Gate / publish (push) Skipped
Merge entry overflow rules into the existing 480px breakpoint, restore picker focus without scrolling, and sync composer and entry contracts without changing page logic. Add AST generation-state guard and both picker close-path regressions.

Validation: targeted 33/33; Chrome isolated components 145 checks; tsc and lint zero errors. Node22 full suite 3706 tests, no lost names or new failures; three target failures fixed, 88 baseline environment/contract failures unchanged. Windows build remains blocked by symlink EPERM. Changed-file privacy check: 11 files, no findings, not a full-repository pass. BUG-1011 remains separate.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-23 16:31:10 +08:00
Jesse_ChenandClaude Opus 5.5 88e89e10d9 docs(tasks): accept the report density fix and brief the database test repair
Acceptance of a12f2c0d against TASK-report-density-fix-20260923: F1 to F6
all pass. On the fixture the fact tables are 130 rows across 600 visible
cells with no engine key, no array index and no long decimal, and every
sourcePath resolves back into the packet. The first major period reads 18
years. Python and TS appendix cleaning are byte-identical. Removing the
writer table guard turns four of its six tests red. Under Node 22 the
frontend goes from 3,730 tests / 26 failing to 3,748 / 26 with an identical
list; the Python quick gate goes from 946 passed / 1 failed to 948 / 0.

One thing still fails: the database test for the report snapshot passes a
428,557-byte SQL string to psql as a single argument, past Linux's 131,072
byte limit, so it dies with E2BIG before reaching Postgres. The snapshot row
has never run against a real database. Recorded as BUG-1011 with a fix brief.

The real-person checklist the executor's tool refused to write is added here.

Privacy scan on this tree before push: zero findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-09-23 15:42:29 +08:00
jesse-uxandClaude Code a12f2c0d26 fix(report): make density facts readable and printable
Independent Staging Quality Gate / validate (push) Failing after 11m4s
Independent Staging Quality Gate / publish (push) Skipped
Unify reader cleanup rules, lock writer table guards, and register the exact fictional timestamp collision. Preserve existing ordinary-report safety contracts and source-data gaps.

Validation: report Node 165/165, final safety 29/29, Python 101/101, Chrome 28/28; both PDFs retain all 130 rows. Full Node 3704 tests with the same 91 baseline failures. Privacy test: 62 passed, 1 failed due to 17 protected-file READ_ERRORs; not a green gate. Build, DB, manual checklist and controlled-login gaps remain documented. User explicitly authorized staging push with these gaps disclosed.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-23 15:26:25 +08:00
Jesse_ChenandClaude Opus 5.5 0d37bec15a docs(bugs): record the staging history rewrite for BUG-1008
The product owner chose to remove the leaked birth data from staging history.
The three commits after f77a1b5a were rebuilt with their original authors,
dates and messages, changing only the brief to its cleaned text: baeec66f,
f968cb21 and fcca56fe became a7f82dc2, bbd96d3b and abf28321. The new head's
tree is byte-identical to the old one and the leaked blob is absent from the
new history.

The old commits are still served anonymously by their SHA until the Gitea
server garbage-collects, so BUG-1008 stays mitigated rather than resolved.

Privacy scan on this tree before push: one finding, the fixture collision.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-09-23 14:24:15 +08:00
Jesse_ChenandClaude Opus 5.5 abf2832180 docs(tasks): accept the report density round and remove birth data from its brief
Acceptance of f968cb21 against TASK-report-density-20260922. Tasks 1, 2, 4
and 5 pass; task 3 does not. Under Node 22, the gate's version, the frontend
suite goes from 3,698 tests / 26 failing to 3,730 / 26 with an identical
failure list; / stays static and first-load gzip moves by 0.007%.

Task 3 renders the ordinary report's fact tables as 948 key/value rows whose
labels are engine paths: 447 carry snake_case keys and 521 carry array
indices, down to a Julian day. The brief never specified columns, so the fix
brief does.

The quick gate's new failure is the privacy scan, and two thirds of it is
mine: the brief pushed in baeec66f carried the comparison chart's real birth
date, time and coordinates. They are removed here and recorded as BUG-1008.
The copy in baeec66f's history stays until the product owner decides whether
to rewrite staging. The remaining hit is a five-character collision inside an
engine timestamp of the fictional fixture, reproduced by regenerating from its
declared fictional input.

Privacy scan on this tree before push: one finding, the fixture collision.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-09-23 14:07:20 +08:00
jesse-ux f77a1b5a33 fix(web): ignore a missing documentElement when marking the home screen revealed
Independent Staging Quality Gate / validate (push) Failing after 10m8s
Independent Staging Quality Gate / publish (push) Skipped
2026-09-22 13:42:36 +08:00
jesse-ux 2a3013f224 fix(chat): choose the chart person before the first message 2026-09-22 12:57:04 +08:00
jesse-ux cc7ef8a339 fix(chart): keep account and chart-view birth truth consistent 2026-09-22 12:14:50 +08:00
jesse-ux dd4141a030 fix(report): project ordinary reports onto public prose only 2026-09-22 12:13:53 +08:00
jesse-ux 337d820076 fix(web): recover the home screen when the bundle never runs 2026-09-22 12:13:17 +08:00
jesse-ux 6ac61be07d fix(consult): resolve chat subject from server-owned profile binding 2026-09-22 12:11:52 +08:00
jesse-ux 1bc6a954c5 docs: record BUG-995 fix SHA 2503c019
Independent Staging Quality Gate / validate (push) Successful in 10m27s
Independent Staging Quality Gate / publish (push) Successful in 3m29s
2026-09-22 00:59:50 +08:00
jesse-ux 2503c0190b fix(test): passthrough stdout mocks so smalltalk TAP is visible
BUG-995: privacy tests were swallowing node:test TAP by replacing process.stdout.write without calling through.
2026-09-22 00:59:36 +08:00
jesse-ux 24795cbff8 docs: mark BUG-994 resolved after staging prune-before-pull deploy 2026-09-21 23:33:38 +08:00
jesse-ux a06829b33e fix(deploy): prune unused staging images before digest pull
Independent Staging Quality Gate / validate (push) Successful in 16m51s
Independent Staging Quality Gate / publish (push) Successful in 6m45s
BUG-994: migrate run 2841 failed writing containerd ingest because the staging host had no space left after accumulated exact-SHA images.
2026-09-21 22:59:07 +08:00
jesse-ux f9685f2837 fix(web): paint session row highlight as one chip including the menu
Independent Staging Quality Gate / validate (push) Successful in 10m44s
Independent Staging Quality Gate / publish (push) Failing after 3m29s
Selected and hover fill stay on the whole row. The title and ⋯ no longer draw their own canvas or radius, so they stop looking like two controls (BUG-993, recurrence of BUG-024).
2026-09-21 20:12:58 +08:00
Jesse_ChenandClaude Opus 5 c954fb8e67 docs: BUG-991/992 收口,补真机走查清单
门禁 run 2837 全绿、d2cec179 已部署、retire 迁移已应用。
五条只有真人能验的写成 docs/testing 清单。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0199rbQDTsUbCVw84wc8BTFe
2026-09-21 19:40:24 +08:00
jesse-ux d2cec17995 test: stop requiring retired archive entrypoints in Python contracts
Independent Staging Quality Gate / validate (push) Successful in 11m24s
Independent Staging Quality Gate / publish (push) Successful in 3m45s
Flip archive tokens to must-not-appear on the session row and session hook only. Keep writeChatSession POST/PATCH and assert delete still uses DELETE. Grep tests/ before deleting frontend symbols.
2026-09-21 19:20:45 +08:00
jesse-ux 5a4b87383f fix(web): retire session archive UI and API, restore archived rows
Independent Staging Quality Gate / validate (push) Failing after 6m35s
Independent Staging Quality Gate / publish (push) Skipped
Remove archive/restore from the session menu and drop archived=1 listing. PATCH still accepts archived_at from old bundles then ignores it. A forward migration clears archived_at without bumping updated_at. Delete stays unchanged.
2026-09-21 18:49:40 +08:00
Jesse_ChenandClaude Opus 5 11e4d5ff09 docs: 会话列表修复单验收通过,BUG-990 收口并更正影响面,新增 BUG-991
门禁 run 2833 全绿、df329fa9 已部署,987~990 回填修复版本。
归档视图的 UI 入口在 92558ee6 就已删除,BUG-990 的用户现象描述更正;
归档后无法查看与恢复记为 BUG-991,待产品决策。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0199rbQDTsUbCVw84wc8BTFe
2026-09-21 18:17:31 +08:00
jesse-ux df329fa96c fix(web): support PostgREST not(col, is) so archived session lists load
Independent Staging Quality Gate / validate (push) Successful in 10m31s
Independent Staging Quality Gate / publish (push) Successful in 3m37s
Local Postgres not() only handled eq/cs, so archived=1 threw and the sidebar archive view returned 500. Compile is not null/true/false instead of inequality.
2026-09-21 17:45:07 +08:00
jesse-ux e71e4f9200 fix(web): keep rectification sessions listed and persist chats on first send
Independent Staging Quality Gate / validate (push) Failing after 16m52s
Independent Staging Quality Gate / publish (push) Skipped
Empty-consultation filtering is now session_type scoped so birth-time rows stay in the sidebar. Subtitles use updatedAt with sort/group/cursor. New chats stay local until the first send.
2026-09-21 16:39:32 +08:00
jesse-ux 0c3c9d6b42 fix(deploy): keep BuildKit cache and use Huawei mirrors for API images
Independent Staging Quality Gate / validate (push) Successful in 10m36s
Independent Staging Quality Gate / publish (push) Successful in 7m7s
Gitea run 2828 validated, then publish hit the 60-minute deadline while
Aliyun apt/pip crawled at about 22 kB/s after a 72h cache prune on a
runner with 677 GiB free. Skip BuildKit prune when disk is above the
minimum, split API apt/pip layers, and point apt/pypi at Huawei Cloud.
2026-09-21 10:56:38 +08:00
Jesse_ChenandClaude Opus 5 27a6c39b94 docs: 回填跨午夜日期锚点的合入状态与验收结论
b85c4a68 已由 Claude 独立验收后快进合入 staging。BUG-982/983 的「修复版本」
原写「本地未提交实现,未推送/部署」,与实际不符,改为记录实现 SHA 与合入
事实;两条状态仍保持 investigating,因为部署与真人验收未完成。

验收证据回填状态板:用当初复现两条 Bug 的同一探针重跑——983 的申报分钟
落回申报日、late_night 300 个候选全在同一日两段;982 的跨午夜三分钟簇由
1440 变 3,同日两段为 300 未糊成一段。非跨午夜同机 A/B 6/6 逐位相同,新
测试基线 6 红修复后全绿,Python 组 216→272 零失败,tsc 0。

同时记下遗留待确认项:无 cluster_intervals 的行仍走旧按钟点算法,需确认
除修复前旧缓存外没有别的生产路径会产生无日期行。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0199rbQDTsUbCVw84wc8BTFe
2026-09-21 09:25:56 +08:00
jesse-ux b85c4a686a fix(rectification): anchor candidate windows to civil dates across midnight
Independent Staging Quality Gate / validate (push) Successful in 13m27s
Independent Staging Quality Gate / publish (push) Failing after 1h0m1s
Carry explicit local date intervals instead of inferring the day from clock
order. Cluster width, delivery, adoption, and reports keep the actual civil
date; adopted date is stored separately from the reported birth_date.

Algorithm identity is scoring-9 / spec-v5. Scoring weights, confirmation
thresholds, and Skill version are unchanged. Isolated Linux final-3 gates
passed; four pre-existing Python failures remain. This is not a production
release.
2026-09-21 02:55:00 +08:00
jesse-uxandClaude Code 8d0359fc62 fix(rectification): enforce trusted result identity and preserve receipt provenance
Independent Staging Quality Gate / validate (push) Successful in 10m4s
Independent Staging Quality Gate / publish (push) Successful in 10m26s
Unify minute and block cache identity, keep unverifiable historical results read-only across server tools and write entrypoints, and aggregate completed receipt sources chronologically through a compatible function migration.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 18:03:38 +08:00
jesse-uxandClaude Code d575e89a83 fix(rectification): stop stamping pending receipts and document aggregate blocker
Implement BUG-984 F2 option A and reproduce mixed completed identities through real tools. Stop at the required SQL authorization boundary; F1/F3/F4 remain pending.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 15:55:09 +08:00
jesse-uxandClaude Code b27d4de963 merge: accept cross-midnight gate fix and sync approved cache task
Resolve BUG-985 using independent third-environment review recorded in 0ca3871d. Retain staging's complete BUG-984 task and approved read-only policy.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 15:13:59 +08:00
jesse-uxandClaude Code 25232ce4ce test(rectification): compare same-day scores against legacy path in process
Replace machine-specific float hashes with strict score and matrix byte comparisons. Keep quick bridge coverage and document duplicate collection. Verify Windows/Linux float behavior and in-memory candidate-date reversal; record the separate-machine acceptance gap and BUG-984 end-to-end blocker.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 14:38:29 +08:00
jesse-uxandClaude Code 777bd53d7e merge: sync staging task sheet into cross-midnight gate fix
Preserve both the reviewed implementation and latest staging records. No production scoring changes beyond aa46da10.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 14:19:17 +08:00
jesse-uxandClaude Code aa46da1016 fix(rectification): use candidate dates for cross-midnight dasha scoring
Add date-isolated caches and regression coverage, align scoring identity, and freeze full research reruns while preserving historical artifacts. Record unresolved cache/receipt identity and end-to-end acceptance gaps for branch review only.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 13:56:11 +08:00
Jesse_ChenandClaude Opus 5 f8e40e5d3d docs: 回填寒暄快速通道的部署 SHA 与验收结论
BUG-976/977 修复版本写死 539d4dae 并记部署核对证据(状态仍 blocked,
真人走查未做);CHANGELOG 去掉「待部署」;状态板改为已验收通过并附
同机两侧对照数字。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-09-20 13:33:14 +08:00
jesse-uxandClaude Code 539d4daee4 feat(consult): add free model-classified smalltalk fast path
Independent Staging Quality Gate / validate (push) Successful in 9m35s
Independent Staging Quality Gate / publish (push) Successful in 3m52s
Keep full consultation tool contracts unchanged. Persist short replies and refund the original reservation atomically while recording actual model usage. Verify Linux frontend 3566/3566, database 40/40, Static home and gzip +0.0493%.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 12:58:34 +08:00
jesse-uxandClaude Code 932f2fffba research(rectification): add reported-offset evaluation and frozen rerun integrity
Independent Staging Quality Gate / validate (push) Successful in 12m7s
Independent Staging Quality Gate / publish (push) Successful in 3m46s
Preserve closed confirmation gates and previously-exposed dataset boundaries. Add auditable 900-trial sensitivity results, current scorer freshness checks, and the v5 collection protocol.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 12:03:52 +08:00
jesse-ux 09b41009f5 docs(progress): record gate 2809 and staging deploy 2811 2026-09-20 09:39:08 +08:00
jesse-ux 12fdaed90b docs(bugs): record 8dc460da as BUG-974/975 fix SHA
Independent Staging Quality Gate / validate (push) Successful in 11m28s
Independent Staging Quality Gate / publish (push) Successful in 10m58s
2026-09-20 09:12:11 +08:00
jesse-ux 8dc460da23 fix(ci): untrack .venv symlink and align Beam avatar contract
The staging gate failed on READ_ERROR .venv after a docs commit tracked a
symlink that gitignore .venv/ does not ignore. CI replaces that path with a
real venv directory. Drop the symlink, ignore the name itself, and lock it
in the privacy scan. Also point the Beam avatar source contract at the
current profile-panel copy so npm test stops failing after Python.
2026-09-20 09:11:24 +08:00
jesse-uxandClaude Code 8497587e65 fix(privacy): complete owner-case purge fix2
Independent Staging Quality Gate / validate (push) Failing after 9m58s
Independent Staging Quality Gate / publish (push) Skipped
Document P0 collision fix and precise privacy declaration permit.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 00:55:20 +08:00
jesse-uxandClaude Code 90309bc8b6 fix(privacy): remove answer-key pattern collision
Apply owner-case-purge fix2 P0/F3 corrections.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 00:55:20 +08:00
jesse-uxandClaude Code 5cbc2d0097 chore(privacy): purge upstream private material and add import guards
Prepare branch for remote review; preserve documented validation gaps and protected historical packages.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 00:55:18 +08:00
jesse-uxandClaude Code 2c92f6100e fix(frontend): isolate sidebar registration to unblock navigation
Separate shell subscriptions from Home session data and cover effect convergence, transition cleanup, current callbacks and signed-out fallback with real React lifecycle tests. Record baseline-equivalent local failures and outstanding browser/build verification.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-19 14:32:42 +08:00
jesse-uxandClaude Code eb8f5147f4 fix(frontend): refine settings dialog layout
Independent Staging Quality Gate / validate (push) Failing after 8m47s
Independent Staging Quality Gate / publish (push) Skipped
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-19 11:32:27 +08:00
jesse-ux bdf027a063 docs(bugs): 回填 BUG-968/969 修复版本 824ecff0
Independent Staging Quality Gate / validate (push) Successful in 12m8s
Independent Staging Quality Gate / publish (push) Successful in 8m40s
2026-09-18 19:16:34 +08:00
jesse-ux 824ecff026 fix(web): 账户弹窗移出 inert;校正快照失败不再静默(BUG-968/969)
账户弹窗与入门付费墙 portal 到 document.body,SidebarInset 的 inert 不再罩住弹窗。
GET 校正快照每个非 200 打 JSON warn;客户端失败显示「这一问还没读到」和重新读取。
下一题是可渲染选择题时,确定性回复正文带题干,挂卡后去重。
2026-09-18 19:16:00 +08:00
jesse-ux e760b1d610 fix(consult): 窗口溢出重试保留预跑证据包,回填修复版本 SHA
Independent Staging Quality Gate / validate (push) Successful in 10m28s
Independent Staging Quality Gate / publish (push) Successful in 10m58s
2026-09-18 18:47:01 +08:00
jesse-ux 9ccb65b71f fix(web): 次级页稳定外壳与缓存预取,跨部署导航自愈(BUG-966/967) 2026-09-18 18:45:48 +08:00
jesse-ux dccedf372e fix(web): 聊天列表恢复项目符号,收紧定义列表,压思考条间距(BUG-962/963/964) 2026-09-18 18:45:19 +08:00
jesse-ux 53d78137ff fix(consult): 申报时段计算改为服务端预跑并走同请求缓存(BUG-957)
窗口计算挂在 agent context 缓存上,模型开口前预跑并注入 packet;工具再调用命中同请求缓存,成功次数仍为 1。
2026-09-18 18:45:19 +08:00