Skip to content

Latest commit

 

History

History
56 lines (39 loc) · 7.14 KB

testing.md

File metadata and controls

56 lines (39 loc) · 7.14 KB

Verification

These observations cover local source, browser and extracted-package checks. The current hosted runs are available under Actions. A passing check covers its exercised boundary, not arbitrary Python effects.

Actual environments

Environment What was exercised
Windows 11 Pro x64, build 26200, Go 1.27.2, Python 3.11.15 Engine behavior, real cancellation/descendants, hard engine termination, recovery and supported-I/O uncertainty
Debian Bookworm x64 container, Go 1.27.2, Python 3.11 Full engine suite with Go's race detector, including real processes and controlled destinations
Windows x64, Python 3.13.15 virtual environment Full engine/SDK suites and extracted native binary, installed wheel, embedded interface response, examples, own-workflow and exported reproductions
Debian Bookworm x64 container, Python 3.11 virtual environment Extracted Linux tarball and the same downloader passage
Chromium on Windows, actual local service and static demo Investigation, editors, comparison, source provenance, local export, custom controls and responsive inspection

Linux container validation establishes headless engine/package behavior, not a Linux desktop-browser walkthrough. macOS and other architectures have not been validated. Python 3.11+ is the declared range; local checks cover the versions above. CI is configured for 3.11 and 3.13 on Windows/Linux.

Behavior checks

Area Regression evidence
Investigation Original schema failure, executed strict replay, successful input experiment, unchanged serialized parent, experiment replay retaining its replacement
Supported HTTP Actual fixture request count, repeated identical calls with distinct ordinals, mismatch with no live fallback, timeout after destination effect
Recovery Real engine termination, retained successful prefix, interrupted attempt, pending intent becoming uncertain, no repeated destination effect
Process lifecycle Hung step timeout, cancellation terminal-state protection, actual descendant cleanup, exclusive data-directory ownership
Persistence Injected SQLite checkpoint write failure prevents supported HTTP and blocks further starts; artifact corruption/missing bytes; future schema rejection
Boundaries Invalid dependency declarations, oversized values, malformed raw worker output, captured-output truncation, four concurrent runs with the fifth queued
Comparison Stable step alignment, added/missing rows, escaped JSON keys, array changes, binary summary, missing artifact and 200-change bound
SDK and portability Exact requirements and selected-source validation, source drift, a separate selected JSON file, reproduction invoked from another directory
Export/import Failed and completed observations executed in clean directories; inspection import cannot execute; unsafe archive traversal rejected
Interface Invalid branch JSON cannot submit, retained boundary, export error/retry/save, disconnected/reconnect state, read-only demo cannot send execution requests, aborted recorded selection

The downloader smoke passage installs the actual wheel, starts the extracted binary from another directory, loads its embedded interface, records/replays the supplier failure, creates the successful branch, runs a separately copied file-backed workflow and the structured-response example, and executes three exported reproductions. The fixture counter remains one across record/replay/branch.

The v0.2 interface has 21 automated checks covering export inventory/content/mode/digest handling, stale-read protection, recorded preview boundaries, navigation/evidence state, automatic failure selection with manual-choice preservation, branch validation and incomplete-prefix feedback, export retry/save, reconnection and recorded-demo boundaries. Browser inspection covers the actual canvas, keyboard resizing, original-path expansion, 390-pixel layout, history focus, custom picker, editors, expanded values and comparison. Canvas geometry and animated numeric rendering are checked in the browser; their renderers are replaced in the DOM-only test environment.

v0.2 integration checks

The SDK suite has 17 checks, including ten optional HTTPX cases. They cover ordinary client requests, JSON/query/header preservation, response status errors, redirect ordinals, bounded sync/async request streams, strict offline misses, no transport retries, compressed responses and cancellation while a broker request is in flight. A separate Python 3.11 environment imports and tests the core SDK without HTTPX installed.

The real client integration starts a loopback destination and records a compressed HTTP response. It stops the destination before replay, reproduces the validation failure, executes the corrected invoice branch and runs both executable ZIPs offline. The destination counter remains one; the corrected result is 6,885 cents. This is a controlled local service, not a live billing-provider integration.

Export regressions compare every inventory path, length, digest and preview with the saved ZIP, inspect decoded response bytes, reject stale reviews after SDK changes, reject unselected paths and protect the save route with the local session. Older SDK recordings remain inspectable and cannot produce an incompatible executable bundle. Static demo capture verifies that preview bytes stay intact rather than modifying them after hashing.

Browser checks use the compiled app: file search/no-match/recovery, source and response selection, stored headers, raw representation, local save, keyboard dismissal/focus return and a settled 390×844 layout. The recorded demo exposes inspection previews and cannot save or execute. The existing process/recovery/race suite continues to cover the engine boundaries above.

Failures that changed the implementation

  • The initial Linux hard-stop test left worker descendants alive. Parent-death signalling, a dedicated group and a runner handler fixed the observed case. The creating Go thread must remain alive until the worker is reaped.
  • A Windows-built Linux tarball initially lacked executable permissions. Release generation now sets portable tar modes explicitly; extraction and native execution were repeated.
  • Resolving a Linux virtual-environment symlink selected the base interpreter in the smoke harness. The harness now preserves the environment's interpreter path. The engine keeps an absolute executable path without resolving that symlink.
  • The first styled dialogs did not receive generated utility CSS under an ignored parent directory. Explicit component source registration fixed the rendered controls. A later browser walkthrough caught clipped inspector actions caused by grid minimum sizing.
  • Experiment replay initially lost the replacement. The regression now requires the child to preserve its inherited prefix and replacement when replayed.

Re-run

See development for commands and performance for the separate measurement method. Tests exercise bounded contracts, not arbitrary Python side effects, hostile-code isolation, every crash point, enterprise load or universal determinism.