Real website · real production path

Learn Dweav Trace by tracing this page.

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.

✓ Explicit test data only ✓ No telemetry ✓ No account required ✓ No extension-only shortcut

60-second check

Quick production test

Open the Dweav Trace side panel on this tab, then run the sequence. The browser page and extension are independently checked.

1

Open the panel

Click the Dweav Trace toolbar icon while this tab is active. Confirm the panel identifies this Altru.dev page.

2

Run a real trace

Sends a harmless snapshot, a structural diff, and a watched-state mutation through the public page API.

3

Verify the panel

Look for the stream live-lab-quick-test and confirm its cards show the expected changes.

Ready when you are. This page will never claim the panel passed until you confirm what you see.

Hands-on course

From first trace to team handoff

0 of 10 complete
01

Capture a snapshot

Record the application state at one meaningful moment.

Not completed
dweav({ cartId: 'demo-1042', items: 2, total: 49.98 }, 'Cart review');

Expected: one “Cart review” card with the three values above.

02

Use labels that explain the moment

Trace names should answer “what happened here?” without opening the payload.

Not completed
dweav({ userId: 'demo-user', result: 'allowed' }, {
  label: 'Permission decision',
  streamId: 'auth-demo',
  operation: 'decision'
});

Expected: a “Permission decision” card in the auth-demo stream.

03

Reveal a structural change

Related snapshots in the same stream become a readable before/after comparison.

Not completed
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.

04

Watch mutable state

Trace mutations automatically by changing the returned Proxy.

Not completed
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.

05

Watch Maps and Sets

Use the same mutation workflow for collection-heavy application state.

Not completed
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.

06

Verify secret redaction

Use fake values only. Dweav Trace redacts sensitive field names before transport and again during storage.

Not completed
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.

07

Trace failure context safely

Capture a bounded demonstration error object alongside the operation that failed—without including a browser stack or local path.

Not completed
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.

08

Use Pause, Stop, Start, and Clear

Control noisy sessions without reloading your application.

Not completed
  1. Click Pause in the panel, then run the test. It should not create a card.
  2. Click Start/Resume, run it again, and confirm the card appears.
  3. Use Clear only after reviewing the confirmation.
dweav({ at: new Date().toISOString() }, 'Capture control test');
09

Trace application context safely

This hosted lab proves injection on Altru.dev. In your own app, send only the bounded context needed to understand a state change.

Not completed
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.

10

Share a reproducible team session

Pro export/import shares a redacted trace timeline—not browser access, source code, or a live connection.

Not completed
  1. Filter the panel to the relevant stream and reproduce the problem.
  2. Click Share, then inspect the downloaded JSON before sending it.
  3. Include page/build version, steps, expected result, and actual result.
  4. Your Pro teammate clicks Import and confirms replacement of their current trace history.
Suggested handoff note
Page/build:
Reproduction steps:
Expected:
Actual:
Relevant stream:
Export reviewed for confidential data: Yes / No

Important: redaction is a safeguard, not permission to share private or regulated information.

Keep nearby

API and troubleshooting reference

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.diagnostics

Shows document ID, capture state, and accepted/rejected counts for the current page.

Not connected?

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.

Existing window.dweav?

Use window.dweavTrace. If that name is also occupied, Dweav Trace may expose window.dweavTraceExtension.

Limits are protection

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.

Privacy boundary

Only values explicitly passed to the API are traced. The extension does not automatically scrape the DOM, forms, network bodies, or clipboard.

Common questions

What this test proves

Can Dweav Trace test Altru.dev itself?

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.

Can this page see whether a card appeared in my side panel?

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.

Does this page send test results to Altru.dev?

No. Progress stays in this browser’s local page storage. The page contains no analytics, account system, or remote result submission.

Should I trace real passwords or tokens to test redaction?

No. Always use fake demonstration values. Redaction reduces accidental exposure; it never justifies handling a real secret carelessly.