Open the panel
Click the Dweav Trace toolbar icon while this tab is active. Confirm the panel identifies this Altru.dev page.
Real website · real production path
This hosted lab uses the same injection path as every other public website. Nothing on Altru.dev receives special access, and this page cannot read your side panel or extension history.
60-second check
Open the Dweav Trace side panel on this tab, then run the sequence. The browser page and extension are independently checked.
Click the Dweav Trace toolbar icon while this tab is active. Confirm the panel identifies this Altru.dev page.
Sends a harmless snapshot, a structural diff, and a watched-state mutation through the public page API.
Look for the stream live-lab-quick-test and confirm its cards show the expected changes.
Hands-on course
Record the application state at one meaningful moment.
dweav({ cartId: 'demo-1042', items: 2, total: 49.98 }, 'Cart review');
Expected: one “Cart review” card with the three values above.
Trace names should answer “what happened here?” without opening the payload.
dweav({ userId: 'demo-user', result: 'allowed' }, {
label: 'Permission decision',
streamId: 'auth-demo',
operation: 'decision'
});
Expected: a “Permission decision” card in the auth-demo stream.
Related snapshots in the same stream become a readable before/after comparison.
const checkout = dweav.stream('checkout-demo');
checkout.emit({ step: 1, status: 'review', coupon: null }, 'Before payment');
checkout.emit({ step: 2, status: 'paid', receipt: 'demo-only' }, 'After payment');
Expected: changed step and status, removed coupon, added receipt.
Trace mutations automatically by changing the returned Proxy.
const state = dweav.watch({ count: 0, queue: [] }, {
label: 'Job state',
streamId: 'watch-demo'
});
state.count += 1;
state.queue.push('demo-job');
Expected: an initial checkpoint followed by a mutation showing count 1 and the new queue item.
Use the same mutation workflow for collection-heavy application state.
const cache = dweav.stream('collection-demo')
.watch(new Map(), 'Cache');
cache.set('demo:42', { ready: true });
Expected: a map.set mutation containing the demo key and value.
Use fake values only. Dweav Trace redacts sensitive field names before transport and again during storage.
dweav({
username: 'demo-user',
password: 'FAKE-PASSWORD-DO-NOT-USE',
apiKey: 'FAKE-API-KEY-DO-NOT-USE',
authorization: 'Bearer FAKE-TOKEN'
}, 'Redaction safety test');
Expected: the username remains visible; all three fake secret values are replaced with redaction markers.
Capture a bounded demonstration error object alongside the operation that failed—without including a browser stack or local path.
dweav({
operation: 'demo-save',
error: { name: 'DemoError', message: 'Demonstration failure' },
retryable: true
}, 'Save failed');
Expected: “Save failed” with the error name/message and retry context, without breaking the page.
Control noisy sessions without reloading your application.
dweav({ at: new Date().toISOString() }, 'Capture control test');
This hosted lab proves injection on Altru.dev. In your own app, send only the bounded context needed to understand a state change.
dweav({
application: 'demo-storefront',
route: '/checkout/review',
build: 'training-1',
viewportClass: 'desktop'
}, 'Application context');
Expected: one fixed synthetic context card. The lab does not inspect the DOM, page title, live route, cookies, forms, or network traffic.
Pro export/import shares a redacted trace timeline—not browser access, source code, or a live connection.
Page/build:
Reproduction steps:
Expected:
Actual:
Relevant stream:
Export reviewed for confidential data: Yes / NoImportant: redaction is a safeguard, not permission to share private or regulated information.
Keep nearby
dweav(value, label)Records one explicit state snapshot. Use it at decision points, boundaries, and failures.
dweav.stream(id)Groups related snapshots so the panel can calculate meaningful structural changes.
dweav.watch(value, options)Returns a Proxy for objects, arrays, Maps, and Sets. Mutate the Proxy, not the original value.
dweav.diagnosticsShows document ID, capture state, and accepted/rejected counts for the current page.
Reload this tab after installing/updating. Internal Chrome pages and the Web Store cannot be injected. Check that the panel is open for this tab.
window.dweav?Use window.dweavTrace. If that name is also occupied, Dweav Trace may expose window.dweavTraceExtension.
Very deep, large, or overly frequent payloads are safely reduced or rejected. Keep traces deliberate, bounded, and focused on the state change you need to understand.
Only values explicitly passed to the API are traced. The extension does not automatically scrape the DOM, forms, network bodies, or clipboard.
Common questions
Yes. If this page reports a supported page API and the side panel receives its cards, Dweav Trace has successfully injected into a real Altru.dev page. For deeper Altru.dev application testing, add deliberate dweav() calls at the state changes you need to inspect.
No—and that separation is intentional. The page can confirm that the API accepted a trace, but it cannot read extension storage or panel content. You verify the panel result to complete the end-to-end check.
No. Progress stays in this browser’s local page storage. The page contains no analytics, account system, or remote result submission.
No. Always use fake demonstration values. Redaction reduces accidental exposure; it never justifies handling a real secret carelessly.