Commit Graph
418 Commits
Author SHA1 Message Date
weichen 3fe5cf1617 Merge Frontend main into U5-Frontend branch for sync
governance / governance (pull_request) Successful in 16s
ci / test-and-build (pull_request) Successful in 2m10s
2026-10-20 06:55:29 +00:00
weichen e73f2ad9dd U5-Frontend integration-tests via PI direct (cursor 3/3 blocked on Playwright + vitest-only)
governance / governance (pull_request) Successful in 13s
ci / test-and-build (pull_request) Successful in 3m38s
Why: cursor 3/3 exhausted; PI direct dispatched as host integration work.

Scope: 8 test files (7 modified + 1 new), 255 insertions, 29 new vitest tests covering 11 U4 frontend-auto-discover scenarios end-to-end:
- AutoDiscover (3 new in store.test.ts)
- CapabilityGroup (3 new in rolePermissions.test.ts + 6 new in panels)
- CreatorOwnerMemberDuties (4 new across adminRdmSections/projectmeta/AccountUsersPanel)
- MemberManagementEntryHidden (3 new in adminRdmSections/projectmeta)
- EmptyListNoCreate (4 new in projectmeta/TaskSidebar)
- DefaultProjectDisabled (1 new in store.test.ts/projectmeta)
- RefreshBackoff + RefreshSingleFlight + RefreshHiddenPause + RefreshReconnectCompensate
- ProjectLifecycleConversation (5 new in test/conversation-work.test.ts)

Verification: npm run build ok (5.35s); ./node_modules/.bin/vitest run 656/656 (was 627, +29 new); new 29 tests across all 11 patterns all pass; no production files touched.

Refs: plan revision 3 U5-Frontend; /tmp/iam-link-u5-frontend-pi-verify-20261019.json exit=0.
2026-10-20 06:50:53 +00:00
weichen 0b388e010d Merge pull request 'IAM U4 frontend-auto-discover (5s polling + capability-group UI + creator/owner/member duties)' (#115) from feature/iam-link-u4-frontend-auto-discover into main
ci / test-and-build (push) Successful in 3m37s
governance / governance (push) Successful in 15s
2026-10-20 03:31:25 +00:00
weichen 2bd5116f58 Merge Frontend main into U4 branch for L1→main sync
governance / governance (pull_request) Successful in 13s
ci / test-and-build (pull_request) Successful in 2m21s
2026-10-20 03:26:56 +00:00
weichen d7768d4ea0 Merge pull request 'Switch account UI to administrator one-time passwords' (#114) from feature/auth-one-time-password-r2 into main
governance / governance (push) Successful in 17s
ci / test-and-build (push) Successful in 27s
2026-10-20 01:56:52 +00:00
agent-exec-transport 3c22d0957a agent-exec transport f9152d30e9410417157ea4a3a9a926ba/e09f009fa9f5
governance / governance (pull_request) Successful in 23s
ci / test-and-build (pull_request) Successful in 36s
2026-10-20 01:48:41 +00:00
agent-exec-transport e296d38ec2 agent-exec transport 0bde562073461c828c740d52a55a8b5d/a5fbfeb4311f 2026-10-20 01:19:46 +00:00
agent-exec-transport f01579890d agent-exec transport 280102ed04383156d99d681a10a5b302/b5e3788d8c79
governance / governance (pull_request) Successful in 15s
ci / test-and-build (pull_request) Successful in 27s
2026-10-19 15:14:12 +00:00
weichen 259021d530 Merge pull request 'Merge the duplicate rdmManagement import in adminRdmSections' (#113) from fix/nonblocking-followups into main
governance / governance (push) Successful in 17s
ci / test-and-build (push) Successful in 39s
2026-10-19 14:31:28 +00:00
agent-exec-transport 7d43ef6ff7 agent-exec transport a4840fd95e17330e094af504afeba096/59a2059a0705
governance / governance (pull_request) Successful in 15s
ci / test-and-build (pull_request) Successful in 36s
2026-10-19 14:25:36 +00:00
weichen 9baf96d937 Merge pull request 'Merge the accepted super-admin changes into main' (#112) from feature/super-admin-merge into main
governance / governance (push) Successful in 16s
ci / test-and-build (push) Successful in 26s
2026-10-19 09:43:13 +00:00
weichen dab16052cf Merge feature/super-admin history onto main
governance / governance (pull_request) Successful in 40s
ci / test-and-build (pull_request) Successful in 54s
2026-10-19 09:40:42 +00:00
agent-exec-transport ce15f7977b agent-exec transport 548284a3917af91d24d89efd66e5ec7c/d0c96d333a18 2026-10-19 09:40:34 +00:00
weichen f560201f8b Merge pull request 'Verify progressive material states in a real browser' (#79) from feature/fast-slow-u2-u3 into main
governance / governance (push) Successful in 15s
ci / test-and-build (push) Successful in 26s
2026-10-19 09:20:39 +00:00
agent-exec-transport 6f8e7ec604 agent-exec transport 9f91fe4ba0c0b0412d4616549f170f87/cff15f49e8bf
governance / governance (pull_request) Successful in 17s
ci / test-and-build (pull_request) Successful in 37s
2026-10-19 05:25:04 +00:00
agent-exec-transport aa49e0dbf3 agent-exec transport 3646d6259c27d42bf24f52c61364d67e/bea155d33d2e
governance / governance (pull_request) Successful in 14s
ci / test-and-build (pull_request) Successful in 30s
2026-10-19 05:10:37 +00:00
weichen 9df5517e9c Merge Frontend main into feature/super-admin
Why: Synchronize Frontend main (IAM U3 account UI #86) into the super-admin branch and resolve conflict in api.ts, AccountUsersPanel.tsx and adminSections.tsx as unions.

Evidence: npm test passed (49 files, 574 tests), check-knip passed.

Impact: AccountUsersPanel supports both super-admin identity/elevation and U3 initialization/credential states.

Refs: #627, Frontend PR #86
2026-10-19 03:49:39 +00:00
weichen b4fec2fdf4 Merge feature/fast-slow-u2-u3 history after syncing with main
governance / governance (pull_request) Successful in 20s
ci / test-and-build (pull_request) Successful in 35s
2026-10-19 03:38:49 +00:00
agent-exec-transport 164ea66039 agent-exec transport 9f1c4114b4dc96cd086583d1c03cd7a4/07c6c40e6ebc 2026-10-19 03:37:22 +00:00
weichen 23877af960 Fix unused exports in accountAuthority for knip guard 2026-10-19 03:23:04 +00:00
agent-exec-transport e6bb387f71 agent-exec transport 1923e710321578c193e3dc882b41cf2f/7f9287b28660 2026-10-19 03:17:22 +00:00
weichen 6db528df10 Merge pull request 'Add U3 account management and recovery UI' (#86) from feature/iam-u3-account-ui into main
governance / governance (push) Successful in 14s
ci / test-and-build (push) Successful in 26s
2026-10-19 01:08:09 +00:00
weichenandCursor 22ef3c4b67 Fold-close the IAM U3 Frontend task card before merge
governance / governance (pull_request) Successful in 15s
ci / test-and-build (pull_request) Successful in 29s
Why: close the card in the same PR before merging.
Evidence: pr-check PR_CHECK_OK on 080c630.
Impact: task card only.
Refs: Frontend PR #86
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 01:07:00 +00:00
weichenandCursor 080c630816 Add the IAM U3 Frontend task card for the PR gate
governance / governance (pull_request) Successful in 14s
ci / test-and-build (pull_request) Successful in 33s
Why: the branch predates Frontend governance adoption and had no task card, so pr-check refused PR #86.
Evidence: card records the agent-exec units, host verification log, CI and independent review of e4041b3.
Impact: task card only.
Refs: Frontend PR #86
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 01:06:46 +00:00
weichen e4041b36b9 Merge IAM U3 account UI history onto Frontend main
governance / governance (pull_request) Successful in 14s
ci / test-and-build (pull_request) Successful in 28s
Why: PR #86 predates IAM U4 and the account-chain UI on main; the U3 behaviour was ported onto main by agent-exec transports d47c493, 72c941c and afd9e75, so this merge only records the U3 branch history.
Evidence: tree equals afd9e75; host tsc -b, vitest 565 passed, build and knip on 72c941c (SELF); independent review blocking item fixed in afd9e75.
Impact: no tree change versus afd9e75.
Refs: Frontend PR #86, base main 1650b4f
2026-10-19 01:04:53 +00:00
agent-exec-transport afd9e7504b agent-exec transport a522bfd9db3df00c549eaa7e63f94562/3f39344cbd2e 2026-10-18 16:57:45 +00:00
agent-exec-transport 72c941c772 agent-exec transport 4a9e9a1c45e7ac50517ea954d95026bb/16e6bae28677 2026-10-18 16:51:49 +00:00
agent-exec-transport d47c49350b agent-exec transport 832aaeb220c114fdce38450a7e3d2dc7/e80375762b4e 2026-10-18 16:31:17 +00:00
weichen 1650b4fff0 Merge pull request 'Add IAM U4 role and permission management UI' (#111) from feature/iam-u4-role-permission-ui into main
governance / governance (push) Successful in 19s
2026-10-18 14:20:29 +00:00
weichen 4d7dffeb4b Merge Frontend main into IAM U4 role permission UI
governance / governance (pull_request) Successful in 18s
Why: Frontend main d562d6a is the PR #106 merge commit of df7818f, which this
branch already contains; recording it keeps the branch current for the
outdated-branch merge check.
Evidence: d562d6a and df7818f have identical trees; the merge changes no
content.
Impact: none.
Refs: Frontend PR #106
2026-10-18 14:16:13 +00:00
weichenandCursor ac45aa71aa Merge IAM U4 role permission UI history onto Frontend main
Why: the U4 Frontend branch is 100 commits behind main, which now carries the
shared document renderer delivery UI, two-trees project work and regulations
citations (PR #106 merged as d562d6a); it conflicted in the API client and
the admin sections. The user authorized syncing U4 after the renderer line on
2026-10-18.
Evidence: content is the agent-exec transport cf07aef (cursor worker, unit
frontend-iam-u4-onto-main-d562d6a-r1, run on a checkout whose tree equals
main, receipt /tmp/cleanup-20261018/render/u4-frontend-onto-run.json, SELF),
integrated with agent-exec apply onto df7818f; this merge (strategy ours)
only records U4 commit 05609ff as an ancestor and changes no content.
Host review: U4's removal of the superseded RDM roles panel and main's move
of RdmDutiesSection to duties/ are both kept; root administrators keep main's
account creation and password reset panel under the U4 users section.
Impact: the Python environment admin section becomes root-only like the other
U4 system sections; AccountRecord gains a ManagedAccountRecord view type.
Refs: Frontend main d562d6a, PR #106

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 12:53:17 +00:00
agent-exec-transport cf07aef3d1 agent-exec transport e0882b049f8aabe5f01b03d73f7fcb71/8260fbbdf34b 2026-10-18 12:50:28 +00:00
weichen d562d6a95c Merge pull request 'Add the unified document render workspace with review and range annotations' (#106) from feature/unified-document-renderer-task11 into main
governance / governance (push) Successful in 13s
2026-10-18 12:39:24 +00:00
weichenandCursor df7818f02a Merge Frontend main into the unified document renderer workspace
governance / governance (pull_request) Successful in 15s
Why: PR #106 is behind main by 15 commits (password login, regulation
citations, RDM member search) and conflicted in RdmAuditWorkspace.tsx and
rdmManagement.ts; the user authorized merging the renderer line on 2026-10-18.
Evidence: content is the agent-exec transport ec5012fe (cursor worker, unit
frontend-task11-sync-main-50ec836-r2, receipt
/tmp/cleanup-20261018/render/frontend-sync-run2.json, SELF): tsc -b, vitest
541/541 and vite build passed; host reviewed both conflict resolutions as unions.
Impact: no behaviour removed from either side; regulation tab and document
open flow coexist in the materials tab.
Refs: PR #106, Frontend main 50ec836

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 12:32:10 +00:00
weichen 50ec83657a Merge the regulation citation card status fix
governance / governance (push) Successful in 15s
Why: PR #109 archived the card with the pre-close status line.
Evidence: CI success on 1f6bff9487.
Impact: Card only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/110
2026-10-18 11:17:14 +00:00
weichenandCursor 1f6bff9487 Mark the archived regulation citation card as closed
governance / governance (pull_request) Successful in 23s
Why: The archive move in PR #109 kept the pre-close status line.
Evidence: Status and PR link only.
Impact: Card only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/109
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 11:12:06 +00:00
weichen 426d1044ac Merge pull request 'Wire RDM member settings to server-side member search' (#108) from feature/rdm-settings-phase1a into main
governance / governance (push) Successful in 23s
2026-10-18 11:05:51 +00:00
weichen 8260bf5bb4 Merge branch 'main' into feature/rdm-settings-phase1a
governance / governance (pull_request) Successful in 15s
2026-10-18 11:05:04 +00:00
weichen 2d65a819f1 Merge structured regulation citation rendering (U7)
governance / governance (push) Successful in 22s
Why: U7 requires structured regulation citations to be visible in audit and document views.
Evidence: CI success on 7050c91334 (governance); vitest/knip/tsc/vite build passed in the composed layout (SELF).
Impact: New regs audit tab and citation rendering; existing tabs unchanged.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/109
2026-10-18 11:03:21 +00:00
weichenandCursor 7050c91334 Close the regulation citation frontend task card before merge
governance / governance (pull_request) Successful in 17s
Why: Cards close and archive in the merging PR.
Evidence: Status, PR link and archive move only.
Impact: Card only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/109
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 10:59:01 +00:00
weichenandCursor a9e2c3fa25 Record regulation citation frontend results in the task card
governance / governance (pull_request) Successful in 18s
Why: Task card is the PR description.
Evidence: vitest, knip, tsc and vite build passed in the composed layout (SELF); CI pending.
Impact: Card only.
Refs: Agent-System-Dev PR #614
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 10:58:55 +00:00
agent-exec-transport 6a3f2447f0 agent-exec transport 4cf12d612fc8a946cd63c630834d3beb/35d799203497 2026-10-18 10:53:59 +00:00
agent-exec-transport 96ab2ebd32 agent-exec transport ec7392fedc38af5f4b87509ddc658ec3/46e128ab5767
governance / governance (pull_request) Successful in 18s
2026-10-18 10:53:45 +00:00
weichenandCursor 57f2746c59 Open the regulations citation frontend task card
Why: U7 frontend rendering of structured regulation citations needs a task record.
Evidence: Card only.
Impact: None on code.
Refs: Agent-System-Dev docs/superpowers/specs/2026-10-18-regulations-citation-contract.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 10:46:08 +00:00
weichen 04595677a2 Merge pull request 'Land password login and admin temporary reset UI pinned by Dev' (#107) from feature/auth-password-management-frontend into main
governance / governance (push) Successful in 15s
Land password login and admin temporary reset UI pinned by Dev (#107)
2026-10-18 10:43:45 +00:00
weichen 7df77c1a8c Merge branch 'main' into feature/auth-password-management-frontend
governance / governance (pull_request) Successful in 14s
2026-10-18 10:41:10 +00:00
weichenandCursor 1445f9e2af Give audit history fetches their own seq owner and label tree row state
governance / governance (pull_request) Successful in 15s
Why: TimelineTab's history effect read the shared events genRef without
incrementing it, so two overlapping history requests both passed the
check and a stale response could overwrite a fresher one, violating the
single-async-owner / drop-stale-events rule. Tree row buttons also hid
their expand state from assistive tech and announced the decorative caret.

Evidence: new src/components/RdmAuditWorkspace.test.tsx (7 cases) covers
out-of-order resolve, stale rejection, cleanup invalidation, ref isolation
and aria attributes; reverting to the non-incrementing read fails 3 cases.
npm test 43 files / 503 tests pass; npm run build ok;
node scripts/check-knip.mjs 50 <= 51; test/design-guard.test.ts 7/7.

Impact: history state now owned by historyGenRef via startLatestFetch
(incremented per fetch, checked on resolve, invalidated on cleanup); the
events-list seq is untouched. Expandable tree buttons expose
aria-expanded, non-expandable rows omit it, caret is aria-hidden.

Refs: review findings on RdmAuditWorkspace (TimelineTab history seq,
tree row a11y); AGENTS.md async-state rule; DESIGN.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 07:27:41 +00:00
weichenandCursor 0d6b8d7745 Merge readable-audit two-trees frontend work into the render workspace
Why: Owner decision merge_whole requires the parent "two trees" initiative's
Frontend work (local-only 95e1948, feature/rdm-two-trees-readable-audit:
814643f..95e1948) to ship together with the unified document render
workspace branch.

Evidence:
- Conflict src/components/RdmAuditWorkspace.tsx (TreeList render): HEAD added
  a per-document "阅读与交付" open button inside the old two-level doc/section
  list; 95e1948 replaced that list with the recursive TreeNodeRow. Kept the
  recursive TreeNodeRow and moved the open button into it (wrapped in
  .rdm-audit-tree-row, onOpenDoc threaded through recursion, shown for
  kind === 'doc' at any depth; aria-label keeps "阅读与交付:<title>").
  MaterialsTab/DocumentRenderWorkspace, saveBase64File and key={pid} from
  HEAD and readable presentation, paging, detail seq-guard, trace relation
  and timeline changes from 95e1948 merged cleanly.
- Conflict src/styles.css (both appended at end of file): kept HEAD's
  render workspace / cockpit rules followed by 95e1948's 760px media query.
- Semantic fix e2e/rdm-audit.playwright.ts: tree kind is now shown in
  business language, so the section filter matches '章节' instead of
  'section'.
- npm test: 42 files, 496 tests passed (incl. design-guard,
  rdmAuditPresentation, rdmAuditTree); npm run build: ok;
  node scripts/check-knip.mjs: 50 <= 51; npx playwright test --list: 78 tests
  in 17 files.

Impact: RDM audit materials tab renders both project trees recursively with
readable names and still opens any document in the render workspace; audit
timeline and trace show readable records and retired/stale relations.

Refs: 95e1948 (814643f, b52f965, c9b55eb, b921bef, 505aba3, 1ef68ab,
ad503c9, 987be74, 95e1948); HEAD 50d12ce

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 07:16:47 +00:00
weichenandCursor 50d12ce974 Anchor review annotations on the selected node text range
governance / governance (pull_request) Successful in 15s
Why: RDM now anchors annotations on nodeId + textStart + textEnd + textHash
(spec 06 §2) and acceptance 10 §5 requires accurate comment ranges. The
workspace only sent whole-node annotations and ignored quote/needsReanchor.

- Selecting text inside one node's title in the reader view records a
  code-point range (Array.from indices; surrogate pairs and ZWJ emoji are
  counted as runes, half-pair endpoints widen) and sends textStart/textEnd
  plus quote, so RDM rejects rather than misplaces a drifted range.
- No selection keeps whole-node behavior; replies never carry range params;
  textHash/range are never sent; a range is dropped if it belongs to another
  node.
- Selections spanning several nodes or containing no node text record no
  range and show a notice that the whole node will be annotated; the composer
  always shows the scope with a "whole node" escape.
- Annotation items show the server quote and a visible needs-reanchor state;
  review_anchor_invalid: errors map to readable Chinese text.
- Reader titles become role=button spans because browsers do not allow text
  selection inside <button>.

Evidence: npm test 40 files / 486 tests pass (30 new in
test/review-annotation-anchor.test.ts); npm run build exit 0;
node scripts/check-knip.mjs "50 <= 51"; design-guard 7/7; playwright
--list compiles 13 tests; headless Chromium check of the selection reader
(single, multi-node, triple-click clamp, emoji offsets).

Impact: document review UI only; base-gate decision source anchoring is
unchanged. Offsets are computed on the displayed node title (no frozen-text
read endpoint exists), guarded by quote equality on the server.

Refs: unified renderer plan Task 13; phase1 F2; spec 06 §2
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 06:27:22 +00:00
weichen 0e05624823 Merge remote-tracking branch 'origin/main' into feature/unified-document-renderer-task11 2026-10-18 01:04:41 +00:00