返回 DeepSeek-Reasonix
app-lifecycle.log
根目录 / docs / evidence / chat-refactor / app-lifecycle.log
1
2 > reasonix-desktop-frontend@0.0.0 test:app-lifecycle <repo>/desktop/frontend
3 > tsx src/__tests__/app-lifecycle.test.tsx && tsx src/__tests__/committed-command-lifecycle.test.tsx && tsx src/__tests__/committed-command-execution.test.tsx && tsx src/__tests__/navigation-surface-lifecycle.test.tsx && tsx src/__tests__/app-lifecycle-probe.test.ts && tsx src/__tests__/subscription-scope.test.ts && tsx src/__tests__/composer-source-operations.test.tsx && tsx src/__tests__/session-prompt-lifecycle.test.tsx && tsx src/__tests__/desktop-preferences-lifecycle.test.tsx && tsx src/__tests__/onboarding-commands.test.tsx && tsx src/__tests__/topicbar-actions-lifecycle.test.tsx && tsx src/__tests__/decision-slots-lifecycle.test.tsx && tsx src/__tests__/session-experience-settings.test.tsx && tsx src/__tests__/project-topic-lifecycle.test.tsx && tsx src/__tests__/conversation-projection.test.ts && tsx src/__tests__/remote-composer-presentation.test.tsx && tsx src/__tests__/remote-composer-commands.test.tsx && tsx src/__tests__/terminal-panel-commands.test.tsx && tsx src/__tests__/workspace-panel-commands.test.tsx && tsx src/__tests__/desktop-navigation-lifecycle.test.tsx && tsx src/__tests__/runtime-status-lifecycle.test.tsx && tsx src/__tests__/session-control-commands.test.ts && tsx src/__tests__/automation-navigation-lifecycle.test.tsx && tsx src/__tests__/mock-remote-catalog.test.ts && node --import ./scripts/svg-stub-register.mjs --import tsx src/__tests__/topicbar-region.test.tsx && tsx src/__tests__/controller-profile-lifecycle.test.tsx && tsx src/__tests__/session-submission-lifecycle.test.tsx && tsx src/__tests__/pending-plan-revision-lifecycle.test.tsx && tsx src/__tests__/session-undo-lifecycle.test.tsx && tsx src/__tests__/session-clear-commands.test.tsx && tsx src/__tests__/turn-verification-commands.test.tsx && tsx src/__tests__/delivery-continue-commands.test.tsx && tsx src/__tests__/active-tab-mirror.test.tsx && tsx src/__tests__/windows-maximised-sync.test.tsx && tsx src/__tests__/topic-summary-commands.test.tsx && tsx src/__tests__/worktree-merge-commands.test.tsx && tsx src/__tests__/composer-insert-commands.test.tsx && node --test bench/app-memory-evidence.test.mjs && node --test bench/app-memory-shards.test.mjs bench/app-memory-paths.test.mjs && node --test scripts/check-app-layers.test.mjs && node --test scripts/check-desktop-host-boundary.test.mjs && node --test scripts/shell-css.test.mjs && node --test scripts/check-css-syntax.test.mjs
4
5 PASS App committed commands and source-bound operation ownership are lifecycle safe
6 PASS unmount revokes command authority synchronously
7 PASS normal passive setup does not invalidate layout-started work
8 PASS committed capture/executor separates source input from lifecycle-owned effects
9 PASS navigation receipts are unique, source-bound, and consumed exactly once
10 PASS lifecycle probe exposes retained cohorts and duplicate cleanup
11 PASS subscription scopes fence queued notifications and release all resources
12 composer source operations: source isolation, ABA, identity replacement, lanes, finally and disposal passed
13 session prompts: source, prompt identity, replacement, ABA, supersession and disposal passed
14 desktop preferences: lightweight snapshot, legacy mirror, warning revision and disposal passed
15 onboarding commands: model access, completion, dismissal and disposal passed
16 topicbar lifecycle: 128 replacements retain one action group and no orphan DOM
17 decision slots: independent Suspense preserves visible siblings and focus
18 session experience controls: success, failure snapshot, busy state, legacy backend and keyboard reachability passed
19 project/topic commands: stable entry, targeted rename, independent lanes, ABA, cancel and disposal passed
20 conversation projection: shared source identity, remote telemetry isolation and local-tool layout policy passed
21 remote Composer: real file control, native drop boundary and running guidance preserve source routing
22 remote composer commands: management routing, source Goal/send, byte preservation, runtime ports and disposal passed
23 terminal commands: remote capability, warm mount exclusion, native key routing and disposal passed
24 workspace commands: scoped restoration, Creation, preview/maximize, remote requests and synchronous disposal passed
25 desktop navigation: queue ownership, ABA, IM hydrate, dirty-worktree warning, tab resume, failure and disposal passed
26 runtime polling: single flight, deterministic timers, terminal counts, source replacement and synchronous disposal passed
27 session control commands: canonical background target, active target, replacement, navigation and disposal passed
28 automation navigation: accepted-target return, page ABA, exact finally and disposal passed
29 mock remote catalog: open, refresh, model, new session, selection and close agree
30 An empty string ("") was passed to the src attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to src instead of an empty string.
31 topicbar region: DOM structure, source commands, focus, rename keys and action identity passed
32 controller profile lifecycle: committed source, replacement, ordering, ABA, ready restore and disposal passed
33 session submission lifecycle: source continuations, Goal atomicity/bytes, replacement, failure, read-only and disposal passed
34 pending plan revision lifecycle: source queues, request identity, replacement, ABA and disposal passed
35 An update to Probe inside a test was not wrapped in act(...).
36
37 When testing, code that causes React state updates should be wrapped into act(...):
38
39 act(() => {
40 /* fire events that update state */
41 });
42 /* assert on the output */
43
44 This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
45 An update to Probe inside a test was not wrapped in act(...).
46
47 When testing, code that causes React state updates should be wrapped into act(...):
48
49 act(() => {
50 /* fire events that update state */
51 });
52 /* assert on the output */
53
54 This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
55 session undo lifecycle: code transaction retention, banners, failed rewinds and edit gates passed
56 session clear commands: pending lifecycle, local/remote chains, failure notices and empty-target gate passed
57 turn verification commands: dock reveal, sequenced requests and reset lifecycle passed
58 delivery continue commands: ready gate, goal resume chain, stale-ownership fence and empty-target gate passed
59 active tab mirror: commit-following writes, async reads and unmount release passed
60 windows maximised sync: lifecycle gating, listener sync, generation fence and store ownership passed
61 topic summary commands: identity memo, single-flight fetch, revision refetch and failure clearing passed
62 worktree merge commands: overlay state, receipt gate, intent fences and close/finalize chain passed
63 composer insert commands: routing, plan-revision target, selection trimming and terminal output chains passed
64 ✔ deliberately retained cohorts remain detectable even when totals are constant (0.828833ms)
65 ✔ probe overflow, duplicate IDs and cleanup underflow invalidate evidence (0.085208ms)
66 ✔ stable owner counters alone cannot establish whole-App retention attribution (0.594709ms)
67 ✔ a stable tail cannot hide growth earlier in the post-GC sequence (0.077208ms)
68 ✔ missing or non-finite native counters are invalid evidence (0.101584ms)
69 ✔ subscriptions retained after a round trip require attribution (0.070125ms)
70 ✔ persistent post-baseline cohorts remain a qualification blocker (0.051875ms)
71 ✔ the automated gate blocks on screening failures, not the offline attribution duty (0.107417ms)
72 ✔ a mid-sequence excursion that fully returns to baseline is an observation, not a blocker (0.079875ms)
73 ✔ a displaced final tail remains a persistent blocker (0.107917ms)
74 ✔ an explicit settled tail sample is the authoritative resting state (0.103542ms)
75 ✔ an unsettled baseline is reported instead of being judged as displacement (0.076875ms)
76 ✔ an unsettled baseline still blocks sustained growth away from a low point (0.061667ms)
77 ✔ a settled baseline keeps the displacement check (0.084458ms)
78 ✔ native objects are not automatically detached DOM (0.121125ms)
79 ℹ tests 15
80 ℹ suites 0
81 ℹ pass 15
82 ℹ fail 0
83 ℹ cancelled 0
84 ℹ skipped 0
85 ℹ todo 0
86 ℹ duration_ms 42.599292
87 ✔ all frontend consumers, configuration and tests trigger the soak (0.352292ms)
88 ✔ known independent backend and documentation changes skip only this mock frontend soak (0.181125ms)
89 ✔ repository tooling, workflows and the Electron shell do not reach the browser-mocked bundle (0.057542ms)
90 ✔ unknown paths fail closed and cannot be hidden by a documentation change (0.427167ms)
91 ✔ three independent full shards preserve the complete protocol and offline attribution (1.719875ms)
92 ✔ one complete process never satisfies the aggregate protocol (0.208625ms)
93 ✔ aggregate rejects duplicate shard (0.273208ms)
94 ✔ aggregate rejects different commit (0.140625ms)
95 ✔ aggregate rejects different build (0.111917ms)
96 ✔ aggregate rejects dirty source (0.1035ms)
97 ✔ aggregate rejects another workflow attempt (0.129042ms)
98 ✔ aggregate rejects different fixture (0.098041ms)
99 ✔ aggregate rejects old hydration protocol (0.092833ms)
100 ✔ aggregate rejects short cycles (0.1115ms)
101 ✔ aggregate rejects missing checkpoint (0.08675ms)
102 ✔ aggregate rejects missing heap snapshot (0.112208ms)
103 ✔ aggregate rejects different browser (0.100708ms)
104 ✔ aggregate rejects missing checks (0.116ms)
105 ✔ aggregate rejects page error (0.403ms)
106 ✔ aggregate rejects persistent DOM drift despite claimed pass (0.148ms)
107 ✔ aggregate rejects unfinished operations despite claimed pass (0.107416ms)
108 ✔ aggregate rejects missing token identity (0.139042ms)
109 ✔ requested head and manifest protocol must match (0.12075ms)
110 ℹ tests 23
111 ℹ suites 0
112 ℹ pass 23
113 ℹ fail 0
114 ℹ cancelled 0
115 ℹ skipped 0
116 ℹ todo 0
117 ℹ duration_ms 43.850541
118 PASS AST layer checks resolve runtime edges and reject transitive boundary violations
119 ✔ scripts/check-app-layers.test.mjs (144.538375ms)
120 ℹ tests 1
121 ℹ suites 0
122 ℹ pass 1
123 ℹ fail 0
124 ℹ cancelled 0
125 ℹ skipped 0
126 ℹ todo 0
127 ℹ duration_ms 148.027292
128 PASS desktop host boundary gate flags shell-global access outside lib/desktopHost.ts
129 ✔ scripts/check-desktop-host-boundary.test.mjs (135.853084ms)
130 ℹ tests 1
131 ℹ suites 0
132 ℹ pass 1
133 ℹ fail 0
134 ℹ cancelled 0
135 ℹ skipped 0
136 ℹ todo 0
137 ℹ duration_ms 139.371208
138 ✔ browser build keeps the custom property byte-for-byte (0.3585ms)
139 ✔ electron build rewrites every drag declaration (0.726375ms)
140 ✔ electron keeps chrome no-drag but does not punch the titlebar with transcript boxes (0.466417ms)
141 ✔ chrome selector does not match unrelated topicbar or topbar class names (0.0605ms)
142 ✔ electron stylesheet rewrite leaves transcript boxes out of app-region (7.805708ms)
143 ✔ shell selection is explicit (0.201958ms)
144 ℹ tests 6
145 ℹ suites 0
146 ℹ pass 6
147 ℹ fail 0
148 ℹ cancelled 0
149 ℹ skipped 0
150 ℹ todo 0
151 ℹ duration_ms 48.186791
152 check-css-syntax: orphaned-selector guard contracts hold
153 ✔ scripts/check-css-syntax.test.mjs (29.392209ms)
154 ℹ tests 1
155 ℹ suites 0
156 ℹ pass 1
157 ℹ fail 0
158 ℹ cancelled 0
159 ℹ skipped 0
160 ℹ todo 0
161 ℹ duration_ms 33.022791
162
162 lines Plain Text