wenay-react2 1.0.46 → 1.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -15
- package/doc/EXAMPLE_USAGE.md +969 -969
- package/doc/PROJECT_FUNCTIONALITY.md +403 -403
- package/doc/PROJECT_RULES.md +27 -27
- package/doc/WENAY_REACT2_RENAMES.md +170 -170
- package/doc/changes/v1.0.35.md +18 -18
- package/doc/changes/v1.0.38.md +37 -37
- package/doc/changes/v1.0.39.md +23 -23
- package/doc/changes/v1.0.40.md +14 -14
- package/doc/changes/v1.0.41.md +35 -35
- package/doc/changes/v1.0.42.md +26 -26
- package/doc/changes/v1.0.43.md +10 -10
- package/doc/changes/v1.0.44.md +14 -14
- package/doc/changes/v1.0.45.md +8 -8
- package/doc/changes/v1.0.46.md +11 -11
- package/doc/changes/v1.0.47.md +9 -0
- package/doc/changes/v1.0.48.md +8 -0
- package/doc/examples/README.md +4 -4
- package/doc/examples/peer-call-media.tsx +7 -7
- package/doc/examples/stand.tsx +5 -5
- package/doc/native.md +37 -0
- package/doc/progress/README.md +13 -13
- package/doc/progress/architecture-fix-queue.md +74 -74
- package/doc/progress/column-state-present-gate.md +28 -28
- package/doc/progress/common2-adoption-1.0.73.md +28 -28
- package/doc/progress/common2-adoption-1.0.74.md +24 -24
- package/doc/progress/hook-controller-opportunities.md +363 -363
- package/doc/progress/hook-extraction-audit.md +195 -195
- package/doc/progress/public-surface-normalization.md +351 -351
- package/doc/progress/qa-stand-walkthrough-2026-07-12.md +62 -0
- package/doc/progress/stand-as-examples-audit.md +20 -20
- package/doc/progress/style-system-normalization.md +121 -121
- package/doc/target/README.md +32 -32
- package/doc/target/my.md +122 -122
- package/doc/wenay-react2-rare.md +807 -807
- package/doc/wenay-react2.md +541 -541
- package/lib/common/demo/peerMedia.js +6 -1
- package/lib/common/src/logs/logsController.js +2 -2
- package/lib/common/testUseReact/qa.js +3 -3
- package/lib/native/columnDots.d.ts +41 -0
- package/lib/native/columnDots.js +104 -0
- package/lib/native/columnState.d.ts +69 -0
- package/lib/native/columnState.js +209 -0
- package/lib/native/index.d.ts +3 -0
- package/lib/native/index.js +3 -0
- package/lib/style/menuRight.css +19 -19
- package/lib/style/style.css +23 -23
- package/lib/style/tokens.css +184 -184
- package/package.json +2 -1
- package/doc/wenay-react2-1.0.8.tgz +0 -0
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
# ColumnState present-gate — progress
|
|
2
|
-
|
|
3
|
-
## Scope
|
|
4
|
-
|
|
5
|
-
Fix the v1.0.43 regression reported by a consumer: a grid event must not persist
|
|
6
|
-
`visible=false` for a column that is hidden only by the runtime `presentGate`.
|
|
7
|
-
|
|
8
|
-
## Contract
|
|
9
|
-
|
|
10
|
-
`presentGate` is application-owned runtime presence. `visible` is user-owned,
|
|
11
|
-
persisted configuration. A grid readback may update visibility only when the
|
|
12
|
-
column passes the gate; order, width, sort and filter continue to read back for
|
|
13
|
-
all known columns.
|
|
14
|
-
|
|
15
|
-
## Plan
|
|
16
|
-
|
|
17
|
-
1. Reproduce against current source with a fake grid. **Confirmed:** an unrelated
|
|
18
|
-
resize changed gated `b` from persisted `visible=true` to `false`.
|
|
19
|
-
2. Guard the visibility fold in `readFromGrid` with `passesPresentGate`. **Done.**
|
|
20
|
-
3. Add regression coverage for closed and open gates. **Done:** fake GridApi
|
|
21
|
-
covers both the protected gated column and a normal open-gate visibility edit.
|
|
22
|
-
4. Run TypeScript, Jest and package build; record release notes. **Done:**
|
|
23
|
-
targeted Jest 3/3, full Jest 64/64, qa-check TypeScript and build passed.
|
|
24
|
-
|
|
25
|
-
## Result
|
|
26
|
-
|
|
27
|
-
Published as `wenay-react2@1.0.44`; durable details are in
|
|
28
|
-
`doc/changes/v1.0.44.md`.
|
|
1
|
+
# ColumnState present-gate — progress
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
|
|
5
|
+
Fix the v1.0.43 regression reported by a consumer: a grid event must not persist
|
|
6
|
+
`visible=false` for a column that is hidden only by the runtime `presentGate`.
|
|
7
|
+
|
|
8
|
+
## Contract
|
|
9
|
+
|
|
10
|
+
`presentGate` is application-owned runtime presence. `visible` is user-owned,
|
|
11
|
+
persisted configuration. A grid readback may update visibility only when the
|
|
12
|
+
column passes the gate; order, width, sort and filter continue to read back for
|
|
13
|
+
all known columns.
|
|
14
|
+
|
|
15
|
+
## Plan
|
|
16
|
+
|
|
17
|
+
1. Reproduce against current source with a fake grid. **Confirmed:** an unrelated
|
|
18
|
+
resize changed gated `b` from persisted `visible=true` to `false`.
|
|
19
|
+
2. Guard the visibility fold in `readFromGrid` with `passesPresentGate`. **Done.**
|
|
20
|
+
3. Add regression coverage for closed and open gates. **Done:** fake GridApi
|
|
21
|
+
covers both the protected gated column and a normal open-gate visibility edit.
|
|
22
|
+
4. Run TypeScript, Jest and package build; record release notes. **Done:**
|
|
23
|
+
targeted Jest 3/3, full Jest 64/64, qa-check TypeScript and build passed.
|
|
24
|
+
|
|
25
|
+
## Result
|
|
26
|
+
|
|
27
|
+
Published as `wenay-react2@1.0.44`; durable details are in
|
|
28
|
+
`doc/changes/v1.0.44.md`.
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
# wenay-common2 1.0.73 adoption — progress
|
|
2
|
-
|
|
3
|
-
## Update
|
|
4
|
-
|
|
5
|
-
- Previous dependency: 1.0.70.
|
|
6
|
-
- npm latest verified: 1.0.73.
|
|
7
|
-
- Updated dependency and lockfile to 1.0.73.
|
|
8
|
-
- Compatibility: `tsc -p tsconfig.qa-check.json --noEmit` and full Jest 21 suites / 68 tests pass.
|
|
9
|
-
|
|
10
|
-
## Architecture decision
|
|
11
|
-
|
|
12
|
-
| common2 capability | wenay-react2 decision | Reason |
|
|
13
|
-
| --- | --- | --- |
|
|
14
|
-
| Peer gap repair / `resync()` (1.0.71) | Core-only protocol; future `usePeer` may expose status and explicit `resync` | React must not own journal or repair state. |
|
|
15
|
-
| Hidden-tab Media capture (1.0.72) | Adopt core defaults, no adapter | Browser worker/ImageCapture implementation belongs below React. |
|
|
16
|
-
| `Media.attachVideoCanvas` / audio player / publish pipe (1.0.73) | Recipe and QA consumer first; thin ref-lifecycle hooks only if repeated | Frame decode/playback must bypass React renders. |
|
|
17
|
-
|
|
18
|
-
## Follow-up
|
|
19
|
-
|
|
20
|
-
- Keep the existing `useMediaSource`, `usePeer` and WebRTC recipe items in target.
|
|
21
|
-
- Add a real Media/Peer QA consumer before introducing any new hook.
|
|
22
|
-
- No raw route-coordinator hook: Peer mirrors already survive route changes.
|
|
23
|
-
## Implementation batch
|
|
24
|
-
|
|
25
|
-
- Added `useMediaSource`: React owns source start/stop/device lifecycle only; frames remain on the common2 Listen path.
|
|
26
|
-
- Added `usePeer`: React exposes an SDK peer's mirrored store, low-frequency route state and explicit controls; it owns no repair or transport state.
|
|
27
|
-
- QA cards 38/39/40 cover camera canvas viewer, microphone player and an in-process Peer host/mirror/resync scenario.
|
|
28
|
-
- Verification: qa-check TypeScript, Jest 22 suites / 71 tests, package build, diff-check and live stand HTTP 200.
|
|
1
|
+
# wenay-common2 1.0.73 adoption — progress
|
|
2
|
+
|
|
3
|
+
## Update
|
|
4
|
+
|
|
5
|
+
- Previous dependency: 1.0.70.
|
|
6
|
+
- npm latest verified: 1.0.73.
|
|
7
|
+
- Updated dependency and lockfile to 1.0.73.
|
|
8
|
+
- Compatibility: `tsc -p tsconfig.qa-check.json --noEmit` and full Jest 21 suites / 68 tests pass.
|
|
9
|
+
|
|
10
|
+
## Architecture decision
|
|
11
|
+
|
|
12
|
+
| common2 capability | wenay-react2 decision | Reason |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| Peer gap repair / `resync()` (1.0.71) | Core-only protocol; future `usePeer` may expose status and explicit `resync` | React must not own journal or repair state. |
|
|
15
|
+
| Hidden-tab Media capture (1.0.72) | Adopt core defaults, no adapter | Browser worker/ImageCapture implementation belongs below React. |
|
|
16
|
+
| `Media.attachVideoCanvas` / audio player / publish pipe (1.0.73) | Recipe and QA consumer first; thin ref-lifecycle hooks only if repeated | Frame decode/playback must bypass React renders. |
|
|
17
|
+
|
|
18
|
+
## Follow-up
|
|
19
|
+
|
|
20
|
+
- Keep the existing `useMediaSource`, `usePeer` and WebRTC recipe items in target.
|
|
21
|
+
- Add a real Media/Peer QA consumer before introducing any new hook.
|
|
22
|
+
- No raw route-coordinator hook: Peer mirrors already survive route changes.
|
|
23
|
+
## Implementation batch
|
|
24
|
+
|
|
25
|
+
- Added `useMediaSource`: React owns source start/stop/device lifecycle only; frames remain on the common2 Listen path.
|
|
26
|
+
- Added `usePeer`: React exposes an SDK peer's mirrored store, low-frequency route state and explicit controls; it owns no repair or transport state.
|
|
27
|
+
- QA cards 38/39/40 cover camera canvas viewer, microphone player and an in-process Peer host/mirror/resync scenario.
|
|
28
|
+
- Verification: qa-check TypeScript, Jest 22 suites / 71 tests, package build, diff-check and live stand HTTP 200.
|
|
29
29
|
- Manual Verify: run cards 38, 39, 40 together with existing replay cards 23 and 34 before release.
|
|
30
30
|
- Manual verification completed by the user on the stand; release candidate is 1.0.45.
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# wenay-common2 1.0.74 — adoption assessment
|
|
2
|
-
|
|
3
|
-
## Upgrade
|
|
4
|
-
|
|
5
|
-
- Updated the workspace lockfile from `wenay-common2` 1.0.73 to 1.0.74.
|
|
6
|
-
- Compatibility: qa-check TypeScript, full Jest (20 suites / 67 tests), package build and diff-check pass.
|
|
7
|
-
|
|
8
|
-
## Architecture decision
|
|
9
|
-
|
|
10
|
-
- `Peer.createCallManager` is a new application interaction lifecycle, not an extension of the mirrored-store `usePeer` adapter.
|
|
11
|
-
- React may bind call state and controls; common2 retains signaling envelopes, call-id ordering, busy/glare handling, timeouts and offline verdicts.
|
|
12
|
-
- Presence belongs to the host protocol (`list()` plus edge-triggered `changes`), not polling or a second React-owned store.
|
|
13
|
-
- `createMediaRelay` remains relay-first and server-authorized through `watchOf` / `canWatch`; a call UI attaches viewers only while active. React must not make ACL decisions.
|
|
14
|
-
|
|
15
|
-
## Planned validation batch
|
|
16
|
-
|
|
17
|
-
Presence edges; ring/accept/active; media keyframe; hangup/decline/offline/busy; ACL revoke of an already-open viewer.
|
|
18
|
-
## Implementation batch — 1.0.46
|
|
19
|
-
|
|
20
|
-
- Added `usePeerCalls(manager)`: a thin binding for ring/active state and explicit `call`; the app owns `manager.close()`.
|
|
21
|
-
- Added `usePeerPresence(presence)`: subscribe-first snapshot plus online/offline edge projection.
|
|
22
|
-
- QA cards 41–44 verify an in-process call lifecycle, presence disconnect/reconnect and media relay ACL revocation on an open viewer.
|
|
23
|
-
- Automated verification: qa-check TypeScript, real in-process hook tests, full Jest and package build.
|
|
24
|
-
- Manual Verify pending: QA card 43 — grant camera access, confirm canvas receives frames; revoke ACL and confirm viewer frame count freezes while source remains live; grant again and confirm it resumes. QA card 44 — grant microphone access, confirm audio player receives frames/plays; revoke and grant ACL with the same expectation.
|
|
1
|
+
# wenay-common2 1.0.74 — adoption assessment
|
|
2
|
+
|
|
3
|
+
## Upgrade
|
|
4
|
+
|
|
5
|
+
- Updated the workspace lockfile from `wenay-common2` 1.0.73 to 1.0.74.
|
|
6
|
+
- Compatibility: qa-check TypeScript, full Jest (20 suites / 67 tests), package build and diff-check pass.
|
|
7
|
+
|
|
8
|
+
## Architecture decision
|
|
9
|
+
|
|
10
|
+
- `Peer.createCallManager` is a new application interaction lifecycle, not an extension of the mirrored-store `usePeer` adapter.
|
|
11
|
+
- React may bind call state and controls; common2 retains signaling envelopes, call-id ordering, busy/glare handling, timeouts and offline verdicts.
|
|
12
|
+
- Presence belongs to the host protocol (`list()` plus edge-triggered `changes`), not polling or a second React-owned store.
|
|
13
|
+
- `createMediaRelay` remains relay-first and server-authorized through `watchOf` / `canWatch`; a call UI attaches viewers only while active. React must not make ACL decisions.
|
|
14
|
+
|
|
15
|
+
## Planned validation batch
|
|
16
|
+
|
|
17
|
+
Presence edges; ring/accept/active; media keyframe; hangup/decline/offline/busy; ACL revoke of an already-open viewer.
|
|
18
|
+
## Implementation batch — 1.0.46
|
|
19
|
+
|
|
20
|
+
- Added `usePeerCalls(manager)`: a thin binding for ring/active state and explicit `call`; the app owns `manager.close()`.
|
|
21
|
+
- Added `usePeerPresence(presence)`: subscribe-first snapshot plus online/offline edge projection.
|
|
22
|
+
- QA cards 41–44 verify an in-process call lifecycle, presence disconnect/reconnect and media relay ACL revocation on an open viewer.
|
|
23
|
+
- Automated verification: qa-check TypeScript, real in-process hook tests, full Jest and package build.
|
|
24
|
+
- Manual Verify pending: QA card 43 — grant camera access, confirm canvas receives frames; revoke ACL and confirm viewer frame count freezes while source remains live; grant again and confirm it resumes. QA card 44 — grant microphone access, confirm audio player receives frames/plays; revoke and grant ACL with the same expectation.
|