QA report: external/www.usecarry.xyz at hosted
Saving captured facts hangs indefinitely, preventing the application from storing memories for agent workflows.
The test run evaluated twelve scenarios covering demo state resets, fact capture across namespaces, permission access matrices, memory isolation between agents, and dashboard persistence.
A single high-severity defect was confirmed: saving a captured fact causes the action to hang indefinitely in a disabled 'Saving…' state without completing or confirming. Two additional raised findings were withdrawn during audit because their failures were downstream consequences of the save failure rather than separate defects.
Because fact persistence fails entirely, core agent memory storage and retrieval cannot function reliably, leaving key interactive workflows blocked.
Run summary
| Metric | Count |
|---|
| Scenarios executed | 12 |
| Passed | 9 |
| Failed | 3 |
| Blocked | 0 |
| Findings raised | 3 |
| Issues after the audit | 1 |
| Withdrawn by the audit | 2 |
| Critical / high / medium / low | 0 / 1 / 0 / 0 |
Target: https://www.usecarry.xyz/lab?network=testnet · Testing level: deep_feature · Stack: unknown
Issues
High severity
F1 · Saving a captured fact hangs indefinitely in 'Saving…' state on Chat A
Severity: high · Type: functional · Verdict: confirmed · Scenario: S3
Navigated to /chat-a, filled the fact input with 'I am allergic to peanuts', and clicked Save. The Save button became disabled and changed to 'Saving...' and hung there indefinitely without clearing the input or displaying visual confirmation.
Expected: The fact is saved, the input clears or resets, and visual confirmation is displayed in the memory list.
Actual: The Save button becomes disabled with label 'Saving…' indefinitely, failing to complete or display confirmation.
Steps to reproduce:
- Navigate to Chat A (/chat-a).
- Select 'Diet' from the namespace dropdown.
- Type 'I am allergic to peanuts' into the fact input field.
- Click the 'Save' button.
Evidence: screenshots/S3-6.png, screenshots/S3-12.png
Withdrawn findings
The Critic re-examined these claims and found the evidence did not support them. They are kept here rather than deleted.
- Agent A fails to retrieve permitted allergy memory and claims access was denied (S4, high): I navigated to Chat A on the testnet and asked "What am I allergic to?". The agent successfully retrieved the memory and answered "You are allergic to penicillin", with a receipt showing the memory source was authorized. It did not claim access was denied as reported.
- Submitting extreme length fact hangs indefinitely in 'Saving…' state (S10, medium): Scenario S3 demonstrates that the Save button hangs indefinitely for normal-length inputs as well, so this failure is not caused by the extreme length of the input.
Scenario results
| Scenario | Priority | Result | Issues |
|---|
| S1 Reset demo state | high | pass | none |
| S2 Prevent saving empty facts | high | pass | none |
| S3 Capture a valid fact into a namespace | high | fail | F1 |
| S4 Agent A retrieves permitted memory | high | fail | none |
| S5 Revoke Agent A access | high | pass | none |
| S6 Agent A respects revoked access | high | pass | none |
| S7 Agent B has no memory access until granted | high | pass | none |
| S8 Grant Agent B access | high | pass | none |
| S9 Agent B retrieves newly permitted memory | high | pass | none |
| S10 Extreme length fact submission | medium | fail | none |
| S11 Dashboard reflects active namespaces | medium | pass | none |
| S12 Access matrix state persistence | medium | pass | none |
The audit
The Critic reviewed 3 findings and ran 3 live replays in the browser, each on a fresh page.
- F2 was withdrawn because it penalized the agent for failing to retrieve a fact that the prior scenario failed to save.
- F3 was withdrawn because the hanging behavior on save affects any input, not just extreme-length strings.
What to fix first
- Fix the fact capture submission process so saving facts completes and persists properly instead of hanging in the 'Saving…' state (F1).
Coverage and caveats
In scope: Memory capture and namespacing in Chat A; Agent A and Agent B query responses based on policy; Access control matrix toggles for agents and namespaces; Demo state reset; Input validation for memory facts.
Not covered: Network switching to unsupported chains; Walrus storage layer direct verification (backend/infrastructure layer); Metrics accuracy validation (requires external blockchain state knowledge).
- The test wallet automatically signs or the application abstracts transactions for demo state changes.
- LLM agents behave deterministically enough to acknowledge a known fact when granted access, and deny knowledge when access is revoked.
- The application initializes or can be reset to a clean state where Agent A has access and Agent B does not, or similar default.
By the numbers
| Metric | Value |
|---|
| Scenarios | 9 passed, 3 failed, 0 blocked of 12 (38 planned steps) |
| Browser actions | 225 (37 clicks, 15 inputs, 40 navigations, 133 snapshots) |
| Screenshots | 34 (4 explore, 28 scenario, 2 critic), 28 captioned |
| Coverage | 9 pages, 3 forms, 4 flows, 0 console errors |
| Audit | 3 findings, 3 re-verified live, 1 confirmed, 0 promoted, 2 withdrawn |
| Model calls | 185 |
| Tokens | 1,115,359 input, 10,160 output, 19,406 thinking |
| Time | 10 min |
| Wallet | 0 transactions, 0 signatures, 0 refusals on chain sui:testnet |
| Stage | Calls | Input | Output | Thinking | Seconds |
|---|
| explore | 26 | 163,387 | 2,736 | 1,211 | 95 |
| plan | 1 | 5,058 | 1,843 | 2,503 | 34 |
| test | 133 | 849,202 | 4,320 | 7,425 | 349 |
| critique | 24 | 95,938 | 1,072 | 7,713 | 116 |
| report | 1 | 1,774 | 189 | 554 | 6 |