-
Notifications
You must be signed in to change notification settings - Fork 3.9k
feat(m2.2.4): add read-only Core registry inspection views #5992
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
SiriusYou
wants to merge
172
commits into
tinyhumansai:main
from
SiriusYou:codex/m224-core-registries
Closed
Changes from all commits
Commits
Show all changes
172 commits
Select commit
Hold shift + click to select a range
e61ac02
feat: add tracked Core workbench client for OpenHuman
b35f486
feat: route YouPet Core workbench calls through the in-process Rust core
76fed16
feat: add YouPet Workbench alert thin slice (M3.1)
8a09ff1
test: fix M3.1 PR coverage guards
ecb6c65
test: stabilize PR coverage and E2E runtime checks
fe390fd
test: serialize voice inference env coverage tests
7055c91
test: align memory source toolkit coverage expectation
ca0e0dc
test: keep GitHub reader coverage fixture hermetic
ca54b9e
test: keep memory sync GitHub fixture hermetic
04ed23c
test: serialize memory threads raw coverage harness
27a6dc0
test: align memory tree sync toolkit expectation
8fcc8d4
test: keep near90 GitHub fixture hermetic
35de435
test: align owned provider responses payload expectation
7647e21
test: align approval gate raw coverage session ids
8cc5ed2
test: stabilize PR raw coverage and settings E2E checks
7232b9f
test: tolerate occupied connectivity fallback ports
4e95389
test: keep cron raw coverage schedule in future
1d4183b
test: align worker b approval gate session id
0a32eae
test: reserve connectivity fallback ports deterministically
eab3fdc
feat: render YouPet workbench context (M3.2)
223efa7
feat: add YouPet workbench trace drawer (M3.3b)
d5f61bf
feat(workbench): narrate YouPet workflow traces
5fa6608
test(workbench): cover workflow trace edge states
dd5eb61
feat(youpet): add ActionRequest approval inbox bridge (M1.2.3)
7cf51c5
fix(youpet): harden ActionRequest inbox acceptance gaps (M1.2.3)
d9d2179
fix(youpet): fail-closed ActionRequest idempotency and mutation refre…
9c32411
fix(youpet): scope ActionRequest intents via verified user storage (M…
cd743ce
fix(youpet): fail closed on ActionRequest intent storage read errors …
4537cb6
fix(youpet): set ActionRequest E2E timeout at suite scope (M1.2.3)
80eca85
test(workbench): add live workflow trace browser acceptance
1b5a891
test(workbench): pin workflow trace failure order
3cb6e87
test(workbench): assert workflow trace metadata pairs
81e6d09
test(e2e): isolate cargo-tauri authority and parse trace fields
a1e37b2
test(e2e): dispatch authority probe and assert recovery actor
7e47352
test(e2e): bind cargo install and recovery metadata
d24f77b
test(e2e): record dest_sha256 on cargo-tauri stamp
871081f
feat(workbench): render ActionRequest trace lane
1cf19fa
fix(workbench): complete ActionRequest trace rendering
8723e5a
style: satisfy OpenHuman publication checks
d402412
docs: identify A-core certifying browser spec
a608354
Merge pull request #4 from SiriusYou/codex/a-core-m133-publication
SiriusYou 1057238
test(m2.2.4): freeze typed registry bridge contracts
34a9e99
test(m2.2.4): correct registry cursor request fixture
5628ac6
feat(m2.2.4): add typed read-only registry bridge
a891c11
test(m2.2.4): prove registry decoder contract gaps
d738387
fix(m2.2.4): align registry decoders with Core contracts
b566e67
test(m2.2.4): freeze registry renderer client
899c9f7
test(m2.2.4): correct registry renderer test typing
5202896
feat(m2.2.4): add typed registry renderer client
3482088
test(m2.2.4): prove active-only registry summaries
f08e30d
fix(m2.2.4): align active-only registry summaries
1af09b9
test(m2.2.4): freeze registry observation state
0f4c017
test(m2.2.4): correct registry hook async fixture
344314c
feat(m2.2.4): add registry observation state
bf704e7
test(m2.2.4): prove registry observation state gaps
26a7f12
fix(m2.2.4): close registry observation state gaps
cf96efe
test(m2.2.4): prove registry blocking reset gaps
6c380b6
fix(m2.2.4): synchronize registry blocking reset state
8ce3503
test(m2.2.4): prove blocked detail resurrection
1bea01f
test(m2.2.4): tighten blocked detail resurrection fixture
8ca793b
test(m2.2.4): correct blocked detail fixture shape
a36b32f
fix(m2.2.4): stop blocked registry detail continuations
528413f
test(m2.2.4): freeze registry inspection experience
b4c8d00
test(m2.2.4): format registry inspection fixtures
3acbd01
test(m2.2.4): correct registry inspection UI fixtures
8c45c96
test(m2.2.4): disambiguate registry status badges
f3b4acd
feat(m2.2.4): add registry inspection experience
f5d22ad
test(m2.2.4): prove registry inspection contract gaps
7f4982e
test(m2.2.4): tighten registry accessibility fixtures
a502240
test(m2.2.4): correct registry drawer focus fixture
7ba877a
fix(m2.2.4): close registry inspection contract gaps
ef7257f
test(m2.2.4): freeze registry catalog and locale parity
7781d67
feat(m2.2.4): localize registry inspection capability
58b33af
test(m2.2.4): prove registry translation placeholders
6cd94bb
fix(m2.2.4): translate remaining registry labels
045fc0f
test(m2.2.4): freeze live registry read-only proof
939a839
test(m2.2.4): add live registry read-only acceptance
2122cc3
test(m2.2.4): prove live registry harness gaps
1d42306
fix(m2.2.4): harden live registry acceptance harness
d97d57e
test(m2.2.4): prove registry proxy origin escape
f02654c
fix(m2.2.4): pin registry proxy origin
f61c3cc
test(m2.2.4): prove macOS disposable path alias
e7b2d27
fix(m2.2.4): accept macOS disposable temp alias
9c981a3
test(m2.2.4): prove disposable database role bootstrap
48b638e
fix(m2.2.4): create disposable postgres role
8edef6b
test(m2.2.4): prove portable migration enumeration
769cdbe
fix(m2.2.4): enumerate Core migrations portably
b3ea4cf
test(m2.2.4): prove unique registry fixture identities
56af171
fix(m2.2.4): separate registry fixture identities
96e9a2e
test(m2.2.4): prove isolated Rust toolchain provenance
cbccd4b
test(m2.2.4): require isolated cargo path forwarding
f1b3173
fix(m2.2.4): preserve Rust toolchain in isolated E2E
6c6571c
test(m2.2.4): prove fixed CEF debugging port
c7186ba
fix(m2.2.4): bind E2E to committed CEF port
6a631cb
test(m2.2.4): prove logged registry response envelope
7845844
fix(m2.2.4): unwrap logged registry responses
2c19f42
test(m2.2.4): align live freshness vocabulary
f9821e6
test(m2.2.4): prove published registry cursor shapes
34389bb
fix(m2.2.4): validate published Registry cursors
fa70545
test(m2.2.4): prove lazy exact Registry cross-links
4e70f00
fix(m2.2.4): keep lazy exact Registry links actionable
b3b65f5
test(m2.2.4): prove cursor-free registry evidence
b2f0528
fix(m2.2.4): omit cursors from retained evidence
8026f03
test(m2.2.4): prove exact Binding row selection
dd48e1c
fix(m2.2.4): expose exact Binding row versions
cc4d194
test(m2.2.4): prove Connector delivery summaries
4fcf2c9
fix(m2.2.4): summarize Connector delivery semantics
d7a9cae
test(m2.2.4): prove complete live process cleanup
ad8d256
fix(m2.2.4): reap live acceptance process trees
680ac65
test(m2.2.4): satisfy registry verification hygiene
ec93eb6
test(m2.2.4): freeze RPC catalog source parity
92f5fe3
fix(m2.2.4): preserve RPC catalog source parity
5d325a3
test(m2.2.4): require OpenHuman live evidence identity
fdb413b
fix(m2.2.4): bind live evidence to OpenHuman identity
c0b8719
test(m2.2.4): wait for live registry data
b6f117b
test(m2.2.4): prove registry response-shape classification
97f7704
fix(m2.2.4): classify registry response-shape failures
142d557
test(m2.2.4): prove Retry-After enforcement
9c336e5
fix(m2.2.4): enforce Registry Retry-After
024adee
test(m2.2.4): prove paged live registry evidence
e06e72a
fix(m2.2.4): distinguish paged registry requests
fdb4da6
test(m2.2.4): prove Retry-After timer bounds
f5b0a7f
fix(m2.2.4): bound Registry retry timer
4e51846
test(m2.2.4): lock registry Retry-After cooldown gaps
7179248
fix(m2.2.4): enforce registry Retry-After cooldown guards
ef56fea
test(m2.2.4): format retry cooldown checkpoint
87d9e76
test(m2.2.4): prove mutable enablement detail refresh
9f632e5
fix(m2.2.4): reobserve mutable enablement details
d03a165
Merge OpenHuman main into codex/m224-core-registries
9f484e5
style(m2.2.4): align restored views with UI tokens
750925b
refactor(m2.2.4): satisfy Rust layout gates
ee7a698
fix(m2.2.4): validate cursors without uuid serde
7c8977c
test(m2.2.4): prove upstream integration review defects
18c034e
fix(m2.2.4): harden upstream Workbench contracts
ce541ee
test(m2.2.4): cover internal YouPet JSON-RPC routing
5dbdb3b
fix(m2.2.4): include internal RPCs in drift guard
d0c538e
test(m2.2.4): align alert list fixture with contract
51b1b81
Merge latest OpenHuman main into codex/m224-core-registries
ea4a444
test(m2.2.4): prove Workbench loses context and freshness
9f53c3b
fix(m2.2.4): preserve Workbench context and list freshness
326ad88
test(m2.2.4): prove registry detail and retry races
c062cab
test(m2.2.4): stabilize registry race proofs
04ad8dc
test(m2.2.4): expose registry scheduling races
79eb6f5
test(m2.2.4): format registry race proofs
b380575
test(m2.2.4): widen Workbench race fixture identity
44d5bc0
fix(m2.2.4): serialize registry detail and retry scheduling
bfdcfa5
Merge latest OpenHuman main after M2.2.4 review recovery
2834536
style(m2.2.4): format Workbench recovery
aed749e
Merge latest OpenHuman main for PR 5992 convergence
39c144e
Merge SiriusYou/main into codex/m224-core-registries
1544464
merge: resolve registry configuration conflicts
senamakel 7d724a7
fix(registry): handle null schema and hash-based routing in registry …
senamakel 69925f9
fix(coreRegistries): correct generation tracking for collection loading
senamakel 12a02ad
fix(coreRegistries): guard collection state against stale generation …
senamakel 7144a78
test(coreRegistries): add missing tab_request_started dispatch in sta…
senamakel 1457fc3
fix: address registry review findings
senamakel bc040c5
style: format registry fixes
senamakel 2742f78
fix: complete registry state review fixes
senamakel e69c575
fix(config): remove tavily api key from secret management
senamakel 227084e
fix(coreRegistries): correct pagination and URL parsing, remove unuse…
senamakel 9b86408
chore: reformat long function signatures and string literals
senamakel 46e8d76
feat(deps): add zod schema validation library
senamakel 41c9159
fix(workbench): include intent in idempotency storage key
senamakel 5899126
feat(coreRegistries): add detail loading on initial tab load and fix …
senamakel 0aca47e
fix(coreRegistries): dispatch request started before collection retry
senamakel 262f746
fix(useRegistryInspection): simplify boolean expression in shouldRestart
senamakel 3195716
feat(coreRegistries): add restartAttemptedGeneration to registry state
senamakel ae45fc0
fix(coreRegistries): handle empty registry state on inspection
senamakel 0fc99fb
fix(useRegistryInspection): handle missing registry gracefully
senamakel 24faa28
fix(coreRegistries): handle empty registry state on initial load
senamakel 212e443
fix(test): update test to match new registry validation behavior
senamakel a9f89f2
fix(workbench): correct test assertion for empty state
senamakel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,135 @@ | ||
| import { render, screen } from '@testing-library/react'; | ||
| import type { ReactNode } from 'react'; | ||
| import { MemoryRouter } from 'react-router-dom'; | ||
| import { describe, expect, it, vi } from 'vitest'; | ||
|
|
||
| vi.mock('./lib/platform', () => ({ getIsMobile: () => false })); | ||
| vi.mock('./AppRoutesIOS', () => ({ default: () => <div data-testid="ios-routes">ios</div> })); | ||
| vi.mock('./components/DefaultRedirect', () => ({ | ||
| default: () => <div data-testid="default-redirect">redirect</div>, | ||
| })); | ||
| vi.mock('./components/ProtectedRoute', () => ({ | ||
| default: ({ children, requireAuth }: { children: ReactNode; requireAuth?: boolean }) => ( | ||
| <div data-testid="protected-route" data-require-auth={String(requireAuth)}> | ||
| {children} | ||
| </div> | ||
| ), | ||
| })); | ||
| vi.mock('./components/PublicRoute', () => ({ | ||
| default: ({ children }: { children: ReactNode }) => ( | ||
| <div data-testid="public-route">{children}</div> | ||
| ), | ||
| })); | ||
| vi.mock('./features/human/HumanPage', () => ({ | ||
| default: () => <div data-testid="page-human">human</div>, | ||
| })); | ||
| vi.mock('./features/coreRegistries/CoreRegistriesPage', () => ({ | ||
| default: () => <div data-testid="page-core-registries">core-registries</div>, | ||
| })); | ||
| vi.mock('./pages/Accounts', () => ({ | ||
| default: () => <div data-testid="page-accounts">accounts</div>, | ||
| })); | ||
| vi.mock('./components/routing/ForwardSearch', () => ({ | ||
| default: ({ to }: { to: string }) => <div data-testid={`forward:${to}`}>{to}</div>, | ||
| })); | ||
| vi.mock('./pages/Activity', () => ({ | ||
| default: () => <div data-testid="page-activity">activity</div>, | ||
| })); | ||
| vi.mock('./pages/Brain', () => ({ default: () => <div data-testid="page-brain">brain</div> })); | ||
| vi.mock('./pages/dev/AgentInsightsPreview', () => ({ | ||
| default: () => <div data-testid="page-agent-insights">agent-insights</div>, | ||
| })); | ||
| vi.mock('./pages/dev/assistant-ui-demo', () => ({ | ||
| default: () => <div data-testid="page-assistant-ui-demo">assistant-ui-demo</div>, | ||
| })); | ||
| vi.mock('./pages/dev/UiGallery', () => ({ | ||
| default: () => <div data-testid="page-ui-gallery">ui-gallery</div>, | ||
| })); | ||
| vi.mock('./pages/FlowCanvasPage', () => ({ | ||
| default: () => <div data-testid="page-flow-canvas">flow-canvas</div>, | ||
| FlowCanvasDraftPage: () => <div data-testid="page-flow-canvas-draft">flow-canvas-draft</div>, | ||
| })); | ||
| vi.mock('./pages/FlowsPage', () => ({ default: () => <div data-testid="page-flows">flows</div> })); | ||
| vi.mock('./pages/Home', () => ({ default: () => <div data-testid="page-home">home</div> })); | ||
| vi.mock('./pages/Invites', () => ({ | ||
| default: () => <div data-testid="page-invites">invites</div>, | ||
| })); | ||
| vi.mock('./pages/Notifications', () => ({ | ||
| default: () => <div data-testid="page-notifications">notifications</div>, | ||
| })); | ||
| vi.mock('./pages/onboarding/Onboarding', () => ({ | ||
| default: () => <div data-testid="page-onboarding">onboarding</div>, | ||
| })); | ||
| vi.mock('./pages/PttOverlayPage', () => ({ | ||
| PttOverlayPage: () => <div data-testid="page-ptt-overlay">ptt-overlay</div>, | ||
| })); | ||
| vi.mock('./pages/Rewards', () => ({ | ||
| default: () => <div data-testid="page-rewards">rewards</div>, | ||
| })); | ||
| vi.mock('./pages/Settings', () => ({ | ||
| default: () => <div data-testid="page-settings">settings</div>, | ||
| })); | ||
| vi.mock('./pages/Skills', () => ({ default: () => <div data-testid="page-skills">skills</div> })); | ||
| vi.mock('./pages/WebCallbackPage', () => ({ | ||
| default: () => <div data-testid="page-web-callback">callback</div>, | ||
| })); | ||
| vi.mock('./pages/Welcome', () => ({ | ||
| default: () => <div data-testid="page-welcome">welcome</div>, | ||
| })); | ||
| vi.mock('./pages/Workbench', () => ({ | ||
| default: () => <div data-testid="page-workbench">workbench</div>, | ||
| })); | ||
| vi.mock('./pages/ActionRequestInbox', () => ({ | ||
| default: () => <div data-testid="page-action-request-inbox">action-requests</div>, | ||
| })); | ||
| vi.mock('./pages/WorkflowsRun', () => ({ | ||
| default: () => <div data-testid="page-workflows-run">workflows-run</div>, | ||
| })); | ||
|
|
||
| const AppRoutes = (await import('./AppRoutes')).default; | ||
|
|
||
| describe('AppRoutes', () => { | ||
| it('registers the Home route behind the protected desktop shell', () => { | ||
| render( | ||
| <MemoryRouter initialEntries={['/home']}> | ||
| <AppRoutes /> | ||
| </MemoryRouter> | ||
| ); | ||
|
|
||
| expect(screen.getByTestId('page-home')).toBeInTheDocument(); | ||
| expect(screen.getByTestId('protected-route')).toHaveAttribute('data-require-auth', 'true'); | ||
| }); | ||
|
|
||
| it('registers the Core Registries route behind the protected desktop shell', () => { | ||
| render( | ||
| <MemoryRouter initialEntries={['/registries']}> | ||
| <AppRoutes /> | ||
| </MemoryRouter> | ||
| ); | ||
|
|
||
| expect(screen.getByTestId('page-core-registries')).toBeInTheDocument(); | ||
| expect(screen.getByTestId('protected-route')).toHaveAttribute('data-require-auth', 'true'); | ||
| }); | ||
|
|
||
| it('preserves the Workbench route behind the protected desktop shell', () => { | ||
| render( | ||
| <MemoryRouter initialEntries={['/workbench']}> | ||
| <AppRoutes /> | ||
| </MemoryRouter> | ||
| ); | ||
|
|
||
| expect(screen.getByTestId('page-workbench')).toBeInTheDocument(); | ||
| expect(screen.getByTestId('protected-route')).toHaveAttribute('data-require-auth', 'true'); | ||
| }); | ||
|
|
||
| it('preserves the ActionRequest inbox behind the protected desktop shell', () => { | ||
| render( | ||
| <MemoryRouter initialEntries={['/action-requests']}> | ||
| <AppRoutes /> | ||
| </MemoryRouter> | ||
| ); | ||
|
|
||
| expect(screen.getByTestId('page-action-request-inbox')).toBeInTheDocument(); | ||
| expect(screen.getByTestId('protected-route')).toHaveAttribute('data-require-auth', 'true'); | ||
| }); | ||
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.