Releases: Slaviors-Group/dawg
Release list
Naughty 2, Naughty Boy
π DAWG 0.2.3-naughty β Portable Artifacts & Persistent Catalog
0.2.3-naughty makes DAWG artifacts easier to identify, keep, move, and replay. This release adds a persistent local artifact catalog, secure .dawg archive import and export, readable capture names, desktop drag-and-drop import, and better artifact discovery throughout the application.
It also fixes an export-path collision that could ignore the destination selected in the desktop save dialog and create a file named json in the DAWG working directory.
Application and schema version:
0.2.3-naughty
Desktop application version:0.2.3
Desktop npm package version:0.2.3-naughty
Browser extension version:0.2.3(version_name: 0.2.3_naughty)
Bundled Node.js version:22.14.0
Bundled mitmproxy version:12.2.3
β¨ Highlights
Portable .dawg Artifacts
-
Added a portable
.dawgarchive format for moving captured artifacts between DAWG installations. -
Added engine commands for managing local artifacts:
dawg artifacts list dawg artifacts export <artifact-directory> --output <file.dawg> dawg artifacts import <file.dawg>
-
Export validates the source OCI artifact before creating the archive.
-
Import validates the archive before publishing it to the local artifact store.
-
Imported artifacts are installed under
~/.dawg/artifacts/and immediately become available to the desktop application. -
Direct CLI export remains non-destructive by default and requires
--forceto replace an existing destination.
Persistent Artifact Catalog
- Added
~/.dawg/artifact-catalog.jsonto persist artifact source and location metadata. - Captured artifacts are registered automatically after packaging completes.
- Imported artifacts retain their original archive source and import timestamp.
- Existing valid artifacts that are not yet registered are discovered and classified as legacy/local artifacts.
- Artifact listing now validates local OCI layouts and sorts results by creation time, newest first.
- The desktop application loads saved artifacts at startup instead of relying on temporary React state.
- Artifact lists refresh automatically after capture and import operations.
Desktop Import & Export
- Added native
.dawgfile dialogs through the Tauri dialog plugin. - Added an Import action to the dashboard.
- Added drag-and-drop import for
.dawgarchives. - Added an Export action for each artifact.
- Export filenames are generated from the artifact title and creation time.
- Added shared execution-log messages for import and export success or failure.
- Fixed desktop export incorrectly appending a second
--output jsonargument.- The duplicate argument previously replaced the selected destination.
- On affected systems, this created an unwanted file named
jsonin the DAWG working directory. - Export now preserves the exact path selected in the save dialog.
Readable Capture Names
-
Added an optional artifact title to the desktop capture workflow and the engine CLI:
dawg capture --url https://example.test --title "Checkout timeout"
-
Captured artifact directories now use readable timestamped names such as:
20260912-143025-checkout-timeout -
Untitled captures derive a readable title from the target hostname and capture time.
-
Name collisions are handled with numeric suffixes instead of replacing an existing artifact.
-
Artifact titles are written into the manifest and displayed throughout the desktop application.
Improved Artifact Browsing
- Added origin labels for:
- captured locally
- imported archives
- registry pulls
- legacy/local artifacts
- The dashboard now displays readable titles, artifact paths, creation times, target URLs when available, and origin metadata.
- Added Replay-page search across artifact title, digest, target URL, and local path.
- Added Replay-page filtering by artifact origin.
- Improved artifact selection labels with readable names and localized timestamps.
- Improved responsive behavior for the Run Replay and Stop Replay controls.
Secure Archive Validation
- Added staged extraction so an imported artifact is not published until all validation succeeds.
- Added protection against malicious or malformed archives, including:
- path traversal entries
- backslash-based archive paths
- symbolic links
- archives larger than 512 MiB
- extracted content larger than 1 GiB
- archives containing more than 10,000 entries
- compression ratios greater than 100:1
- Added OCI validation for:
oci-layoutindex.json- image manifests
- configuration descriptors
- layer descriptors
- SHA-256 blob digests
- declared blob sizes
- DAWG manifest schema and layer metadata
- Failed imports are removed from staging without leaving partial artifacts in the local store.
Schema & Version Updates
- Updated the application and artifact schema from
0.2.0-naughtyto0.2.3-naughty. - Updated desktop Cargo and Tauri package metadata to
0.2.3. - Updated the browser extension to Chrome install version
0.2.3with display label0.2.3_naughty. - Updated generated configuration, environment lockfile, manifest validation, and doctor diagnostics references.
- Extended the version synchronization tool to support labeled extension versions that include a patch component.
π Fixes
- Fixed artifact history disappearing whenever the desktop application restarted.
- Fixed completed captures being represented only by synthetic in-memory entries.
- Fixed imported artifacts not appearing until application state was recreated.
- Fixed desktop export writing to a local file named
jsoninstead of the user-selected path. - Fixed the engine bridge passing conflicting meanings for the
--outputargument. - Improved artifact metadata consistency between the Go engine, Tauri IPC bridge, and React desktop application.
- Improved empty and filtered artifact states in the Replay view.
π§ͺ Tests
- Added an engine export/import round-trip test for portable
.dawgarchives. - Added archive path-traversal rejection coverage.
- Added Rust regression tests for destination-style
--outputarguments, including:--output <path>--output=<path>- commands without their own output destination
- Updated manifest, environment snapshot, packager, and CLI fixtures for schema version
0.2.3-naughty.
β οΈ Upgrade Notes
- Reload the unpacked DAWG browser extension from
chrome://extensionsafter upgrading. - Chrome or Chromium
116or newer is required by the extension manifest. - The default engine schema is now
0.2.3-naughty. Artifacts using the older0.2.0-naughtyschema are not automatically migrated and may be omitted from listing or rejected during import. - Existing valid
0.2.3-naughtyartifact directories under~/.dawg/artifacts/are discovered automatically and registered as legacy/local artifacts. - Import copies an archive into the DAWG-managed artifact store; it does not replay directly from the source archive.
- The browser extension capture workflow is unchanged in this patch, apart from its version update.
π Quick Verification
cd engine
npm run check:versions
go test ./...
go build -o dawg.exe ./cmd/dawg
.\dawg.exe --versionExpected engine version:
0.2.3-naughty
To test an artifact round trip:
.\dawg.exe artifacts list
.\dawg.exe artifacts export "<artifact-directory>" --output "C:\temp\sample.dawg"
.\dawg.exe artifacts import "C:\temp\sample.dawg"
.\dawg.exe artifacts listFor desktop verification:
- Start and stop a capture with an optional artifact title.
- Confirm the captured artifact appears with a readable title and Captured locally origin.
- Export it to a user-selected
.dawgpath. - Confirm no unwanted file named
jsonis created in the DAWG directory. - Import the archive using the file picker or drag-and-drop area.
- Find the imported artifact using Replay search or the Imported archives filter.
- Run the replay and confirm the execution log and final screenshot output.
π¦ Build
Windows
.\desktop\build-bundle.ps1For already cached or staged runtime assets:
.\desktop\build-bundle.ps1 -SkipDownloadLinux
chmod +x ./desktop/build-bundle.sh
./desktop/build-bundle.shπ Contributors
Thanks to:
for the artifact portability, persistent catalog, desktop integration, capture naming, replay browsing, validation, and packaging improvements in this release.
Naughty Boy is Here, Finally
π DAWG 0.2-naughty β Replay Reliability & Extension Capture
0.2-naughty focuses on making the full capture-to-replay workflow reliable on desktop: extension-driven browser capture, cancellable replay, safe background-process cleanup, and replay-safe sanitization.
Generated application/schema version:
0.2.0-naughty
Desktop package version:0.2.0
Browser extension version:0.2.0(version_name: 0.2_naughty)
β¨ Highlights
Browser Extension Capture
- Added the DAWG Manifest V3 browser extension for extension-first capture.
- Capture now records rrweb events, user actions, and frontend request metadata from the desktop-selected tab.
- Added an engine streaming server with session-token validation and extension start/stop handshakes.
- The extension focuses an existing matching tab or opens the requested target URL.
- Playwright and bundled Chromium are now dedicated to artifact replay rather than capture.
Reliable Replay
- The Replay page now executes real engine replays through the Tauri IPC bridge.
- Added Stop Replay to interrupt a running replay.
- Cancelling a replay terminates the associated DAWG engine, Node.js, Chromium, and mitmproxy process tree.
- Closing the desktop application now cleans up DAWG-owned background processes, including active replay and capture daemon processes.
- Improved replay lifecycle handling, cleanup ordering, timeout behavior, and Windows process management.
- Added replay diagnostics to Execution Logs:
- rrweb event-type counts
- captured URL and viewport metadata
- iframe/replayer status
- in-page console and runtime errors
- visible text length after replay
Replay-Safe Sanitization
- Fixed a critical sanitizer issue where rrweb
<!DOCTYPE html>metadata could be incorrectly treated as PII.- This previously changed the structural doctype name to a value such as
User 7DF37326. - Chromium then rejected the malformed doctype and rendered a blank replay page.
- This previously changed the structural doctype name to a value such as
- Preserved SVG
viewBoxandpointsgeometry attributes during sanitization.- Numeric SVG data could previously be mistaken for phone numbers or sensitive data.
- This caused noisy replay logs and malformed icon/diagram rendering.
- Added regression coverage for rrweb doctype and SVG geometry preservation.
Desktop & Bundle Improvements
- Improved Windows background execution so DAWG subprocesses avoid unwanted visible console windows.
- Updated bundle staging and health verification for:
- DAWG engine
- mitmdump
- portable Node.js
- Playwright dependencies
- bundled Chromium
- replay script
- schema and OPA policy
- installable browser extension
- Fixed the Windows NSIS packaging invocation to call the local Tauri CLI directly.
Centralized Version Management
-
Added root-level
version.jsonas the source of truth for:- application version
- desktop package version
- browser extension version
- bundled Node.js version
- bundled mitmproxy version
-
Added synchronization commands:
npm run sync:versions npm run check:versions
-
Supports convenient release labels:
{ "appVersion": "0.2-naughty", "desktopVersion": "0.2", "extensionVersion": "0.2_naughty" }These are normalized automatically where strict SemVer is required.
β οΈ Important Notes
Recapture Older Artifacts
Artifacts captured before this release may contain sanitized rrweb structural fields that cannot be restored later.
If an older artifact replays as blank or reports errors such as:
Failed to execute 'createDocumentType' ...
or SVG warnings involving viewBox / points, create a new capture with 0.2-naughty.
Reload the Browser Extension
After updating DAWG:
- Open
chrome://extensions - Enable Developer mode
- Find DAWG Browser Extension
- Click Reload
This ensures the installed extension uses the current manifest and recorder scripts.
π§ͺ Quick Test Guide
- Launch DAWG Desktop and confirm the engine status is ready.
- Open Engine Doctor and verify bundled resources are healthy.
- Load or reload the DAWG Browser Extension.
- Open Capture and enter a target URL.
- Click Start Capture, reproduce a browser issue, then click Stop Capture.
- Wait for sanitization and OCI artifact packaging to complete.
- Open Replay, choose the new artifact, and click Run Replay.
- Confirm:
- Chromium reconstructs the captured page.
- Execution Logs show one rrweb FullSnapshot and positive visible text length.
- Stop Replay correctly closes Chromium when used mid-replay.
- Start another replay, then close DAWG via the window close button; confirm DAWG background processes do not remain running.
π¦ Build & Packaging
Windows
.\desktop\build-bundle.ps1For already cached/staged runtime assets:
.\desktop\build-bundle.ps1 -SkipDownloadLinux
chmod +x ./desktop/build-bundle.sh
./desktop/build-bundle.shπ Contributors
Thanks to:
for the capture, extension, replay lifecycle, diagnostics, sanitization, and packaging improvements in this release.
v0.1.3-1/alpha
π Alpha Version of DAWG 0.1.3-alpha Ready for Testing
π What's New in v0.1.3-alpha
- Fixing:
- Engine subprocesses (mitmdump, Playwright/node, the capture
daemon, and doctor version probes) no longer pop up a visible
console window on Windows; they now run fully in the background
for the duration of a capture or replay session. - The desktop Replay Engine view now actually triggers replay via
the engine bridge instead of only logging a placeholder message. - Removed the incorrect "Sandbox requires Linux / WSL2" blocker in
the Replay Engine view; bare Windows hosts now see accurate
status describing the engine's native-compatibility replay mode
(no container isolation / no DB fixture restore, but functional).
- Add Auto Build & Bundle Deployment Base Configuration
π₯ Download & Installation
| Platform | Format | Description |
|---|---|---|
| Windows 10 / 11 (x64) | DAWG_0.1.3_x64-setup.exe |
Single-click Windows NSIS Installer |
| Linux (All Distros) | Not yet published | Build from source yourself |
| Debian / Ubuntu | Not yet published | Build from source yourself |
π§ͺ Quick Test Guide
- Launch DAWG Desktop: Notice the green
Engine Ready [Bundled]status light in the header. - Run Diagnostics: Click the status pill to open the π©Ί DAWG Engine Doctor modal and inspect embedded runtime health.
- Capture a Glitch:
- Enter your local or remote target web app URL (e.g.
https://example.comorhttp://localhost:3000). - Click Start Capture, interact with the page to reproduce the issue, and click Stop Capture.
- Enter your local or remote target web app URL (e.g.
- Inspect Artifact:
- View your packaged OCI artifact in
.dawg/artifacts/<session-id>. - Run verification checks with
dawg verify .dawg/artifacts/<session-id>.
- View your packaged OCI artifact in
Full Changelog: https://github.com/Slaviors-Group/dawg/commits/v0.1.3-1/alpha
Thanks to @REZ3X and @AkuSeorangManusia for the update!
v0.1.2-1/alpha
π Alpha Version of DAWG 0.1.2-alpha Ready for Testing
π What's New in v0.1.2-alpha
-
Major Desktop UI Revamp
-
Fixing Access Denied while Creating DAWG Artifacts Folder Store & Standardized Control Paths
π₯ Download & Installation
| Platform | Format | Description |
|---|---|---|
| Windows 10 / 11 (x64) | DAWG_0.1.2_x64-setup.exe |
Single-click Windows NSIS Installer |
| Linux (All Distros) | Not yet published | Build from source yourself |
| Debian / Ubuntu | Not yet published | Build from source yourself |
π§ͺ Quick Test Guide
- Launch DAWG Desktop: Notice the green
Engine Ready [Bundled]status light in the header. - Run Diagnostics: Click the status pill to open the π©Ί DAWG Engine Doctor modal and inspect embedded runtime health.
- Capture a Glitch:
- Enter your local or remote target web app URL (e.g.
https://example.comorhttp://localhost:3000). - Click Start Capture, interact with the page to reproduce the issue, and click Stop Capture.
- Enter your local or remote target web app URL (e.g.
- Inspect Artifact:
- View your packaged OCI artifact in
.dawg/artifacts/<session-id>. - Run verification checks with
dawg verify .dawg/artifacts/<session-id>.
- View your packaged OCI artifact in
Full Changelog: https://github.com/Slaviors-Group/dawg/commits/v0.1.2-1/alpha
Thanks to @mamatqurtifa for the update!
v0.1.1-1/alpha
π Alpha Version of DAWG 0.1.1-alpha Ready for Testing
π What's New in v0.1.1-alpha
-
Dynamic Path Integration Enhancement in Windows
-
Depecrate MSI Bundler Distribution and Focus in NSIS Bundle Distribution for Windows
-
Enhance Engine Command
π₯ Download & Installation
| Platform | Format | Description |
|---|---|---|
| Windows 10 / 11 (x64) | DAWG_0.1.1_x64-setup.exe |
Single-click Windows NSIS Installer |
| Linux (All Distros) | Not yet published | Build from source yourself |
| Debian / Ubuntu | Not yet published | Build from source yourself |
π§ͺ Quick Test Guide
- Launch DAWG Desktop: Notice the green
Engine Ready [Bundled]status light in the header. - Run Diagnostics: Click the status pill to open the π©Ί DAWG Engine Doctor modal and inspect embedded runtime health.
- Capture a Glitch:
- Enter your local or remote target web app URL (e.g.
https://example.comorhttp://localhost:3000). - Click Start Capture, interact with the page to reproduce the issue, and click Stop Capture.
- Enter your local or remote target web app URL (e.g.
- Inspect Artifact:
- View your packaged OCI artifact in
.dawg/artifacts/<session-id>. - Run verification checks with
dawg verify .dawg/artifacts/<session-id>.
- View your packaged OCI artifact in
Full Changelog: https://github.com/Slaviors-Group/dawg/commits/v0.1.1-1/alpha
Thanks to @REZ3X and @mamatqurtifa for the update!
0.1.0-1/alpha
π Alpha Version of DAWG 0.1.0-alpha Ready for Testing
We are excited to announce the initial alpha preview of DAWG (Digs Any Web-app Glitch)!
DAWG eliminates the friction of manual bug reproduction by capturing full-stack web-app glitch sessions, running automated privacy sanitization, and packaging them into deterministic, replayable OCI reproduction artifacts.
π What's New in v0.1.0-alpha
π¦ 1. Self-Contained Monolithic Desktop App (Zero-Config)
No need to manually install Python, Go, Node.js, or mitmproxy. The desktop installer embeds all required runtime environments (mitmdump, node, Playwright scripts, JSON schemas, and OPA policies) into a single standalone bundle.
- Double-click to install β ready out of the box.
- Supports Windows (
.exe/.msi) natively for this release; Linux support is source-buildable (see note below).
π©Ί 2. Built-in dawg doctor Diagnostics
- Comprehensive pre-flight health probe accessible from both the CLI (
dawg doctor) and the Desktop UI. - Instantly verifies runtime readiness, bundled script paths, and schema validation with human-readable and structured JSON outputs.
π₯ 3. Full-Fidelity Capture Engine
- DOM & Visual Trace: High-density visual audit recording powered by
rrweb. - Executable Browser Action Trace: Normalized Playwright action stream (
actions/browser.jsonl) for faithful automated replay. - Frontend & Backend HTTP Interception: Synchronous capture of client network requests and third-party API interactions via embedded
mitmdump.
π‘οΈ 4. OPA-Driven Privacy Sanitization
- Hard-gated PII redaction and synthetic value substitution governed by Open Policy Agent (OPA) Rego rules.
- Generates detailed
sanitize-report.jsonwith deterministic redactions before export.
π 5. Standardized OCI Packaging & Replay Sandbox
- Assembles reproduction sessions into standard OCI Image Layouts with SHA-256 digest-pinned layers and zstd compression.
- Includes preflight sandbox verification and native browser replay engine (
dawg run/dawg verify).
π₯ Download & Installation
β οΈ Note on this release: Only NSIS (.exe) and MSI Windows binaries are included in this alpha. Linux/GNU builds (.AppImage/.deb) are not provided as prebuilt binaries yet β Linux users will need to build from source for the moment. Prebuilt Linux packages are planned for a future release.
| Platform | Format | Description |
|---|---|---|
| Windows 10 / 11 (x64) | DAWG_0.1.0_x64-setup.exe |
Single-click Windows NSIS Installer |
| Windows Enterprise | DAWG_0.1.0-alpha_x64_en-US.msi |
Windows MSI Package |
| Linux (All Distros) | Not yet published | Build from source yourself |
| Debian / Ubuntu | Not yet published | Build from source yourself |
π§ͺ Quick Test Guide
- Launch DAWG Desktop: Notice the green
Engine Ready [Bundled]status light in the header. - Run Diagnostics: Click the status pill to open the π©Ί DAWG Engine Doctor modal and inspect embedded runtime health.
- Capture a Glitch:
- Enter your local or remote target web app URL (e.g.
https://example.comorhttp://localhost:3000). - Click Start Capture, interact with the page to reproduce the issue, and click Stop Capture.
- Enter your local or remote target web app URL (e.g.
- Inspect Artifact:
- View your packaged OCI artifact in
.dawg/artifacts/<session-id>. - Run verification checks with
dawg verify .dawg/artifacts/<session-id>.
- View your packaged OCI artifact in
π¬ Feedback & Known Scope Limitations
- Linux/GNU Builds: Not distributed as prebuilt binaries in this alpha. Linux/GNU developers can build DAWG themselves from source for the moment; prebuilt
.AppImage/.debpackages are planned for an upcoming release. - Bare Windows Replay Sandbox: Replay Docker sandboxing requires WSL2 with Rootless Docker. On bare Windows hosts, browser replay runs in native mock sandbox mode.
- Reporting Issues: Please report reproduction quirks, UI feedback, or environment edge cases on our GitHub Issues.
Full Changelog: https://github.com/Slaviors-Group/dawg/commits/0.1.0-1/alpha
Thanks to @REZ3X for the update