Commit graph

23 commits

Author SHA1 Message Date
Snider
8a116ca78d fix(console): bound exception retention
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-16 00:19:04 +01:00
Snider
fd15f95ca9 Fix console and exception waiter races
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-16 00:17:03 +01:00
Snider
82eec17dfe fix(cdp): harden debug transport and navigation
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Restrict DevTools access to loopback hosts, bound debug and WebSocket reads, validate navigation targets, and sanitise formatted console output.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-16 00:04:51 +01:00
Snider
63a3a39916 docs(ax): add usage-first API examples
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-16 00:01:06 +01:00
Snider
a67fe9e1c3 fix(console): normalise warning aliases
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-15 23:55:36 +01:00
Snider
6759f42a4c Align webview console and tab lifecycle
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 23:54:06 +01:00
Snider
4069bbe263 Guard watcher constructors against nil clients
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 23:52:21 +01:00
Snider
29e5d1bd37 Align webview console and evaluate behavior
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 16:47:59 +01:00
Snider
284d39de18 Align console warning types with RFC 2026-04-15 14:29:06 +01:00
Snider
75ed16743a Align console handling with AX principles 2026-04-15 14:27:13 +01:00
Snider
f5d14bb39d Align console capture with RFC semantics 2026-04-15 14:25:33 +01:00
Snider
f6e235d83e Align webview behavior with RFC 2026-04-15 14:21:23 +01:00
Snider
d6fcd6a2f4 fix(console): defer limit trimming until append
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-15 14:19:00 +01:00
Snider
f4a094e87c Align console filters with spec 2026-04-15 14:17:21 +01:00
Snider
3002b4801d feat(webview): CDP history nav + deterministic console limits + exception text
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
- webview.go: back/forward navigation uses Page.getNavigationHistory +
  navigateToHistoryEntry (bounds-checked, load-wait) — replaces deprecated
  Page.goBackOrForward
- console.go + webview.go: console limits deterministic, clamp negative limits
  to 0, zero-retention supported, error counting normalised, multiple
  ConsoleWatcher filters compose as intersection
- webview.go + console.go + angular.go: JS exception text propagation, Angular
  router/query param map[string]string per RFC
- audit_issue2_test.go + webview_test.go: history nav, exception text, filter
  composition, retention trimming coverage

Verified: GOWORK=off go test ./... passes

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-14 18:35:10 +01:00
Snider
7a4450cf9f feat(webview): console watcher additions + canonical type normalisation
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Spark draft + opus-style fixes during integration:

- normalizeConsoleType applied consistently across FormatConsoleOutput
  + Errors/ErrorsAll + Warnings/WarningsAll iterators — previously raw
  "warning" inputs missed the "warn" comparisons silently
- core.Trim instead of non-existent core.TrimSpace

Spark feature work preserved (Errors/Warnings iterators, formatted
console output, type normalisation helper).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-14 15:09:57 +01:00
Virgil
e6a7ecf4f5 chore(webview): align console buffers with RFC defaults
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:37:51 +00:00
Claude
96f18346d9
feat: upgrade to core v0.8.0-alpha.1, replace banned stdlib imports
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m15s
Replace fmt, errors, strings, encoding/json with Core primitives.
Keep strings.EqualFold, json.NewEncoder (no core equivalents).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 13:53:43 +00:00
Virgil
dff3d576fa fix(cdp): resolve issue 2 audit findings
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-23 07:34:16 +00:00
Snider
900cb750cf fix(console): buffer trim panic when limit < 100, add unit tests
All checks were successful
Security Scan / security (pull_request) Successful in 10s
Test / test (pull_request) Successful in 30s
CLAUDE.md: update error wrapping guidance to reflect coreerr.E() convention.

Console buffer trimming in both Webview.addConsoleMessage and
ConsoleWatcher.addMessage panicked with slice bounds out of range
when consoleLimit was smaller than 100. Use min(100, len) for safe
batch trimming.

Added 22 unit tests covering pure functions (FormatConsoleOutput,
containsString, findString, formatJSValue, getString), ConsoleWatcher
filter/count/handler logic, ExceptionWatcher operations, WaitAction
context handling, and buffer limit enforcement. Coverage: 3.2% → 16.1%.

DX audit findings:
- Error handling: clean (all coreerr.E(), no fmt.Errorf)
- File I/O: clean (no os.ReadFile/os.WriteFile — package uses HTTP/WS only)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 08:54:22 +00:00
Snider
d0dd96d115 feat: modernise to Go 1.26 iterators and stdlib helpers
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m42s
Add iter.Seq iterators (MessagesAll, FilteredMessagesAll, ErrorsAll,
WarningsAll, ExceptionsAll, GetConsoleAll, QuerySelectorAllAll,
ListTargetsAll) for streaming. Use slices.Clone for handler copies,
range-over-int in findString.

Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 05:26:44 +00:00
Snider
095dada85c refactor: apply go fix modernizers for Go 1.26
Automated fixes: interface{} → any, range-over-int, t.Context(),
wg.Go(), strings.SplitSeq, strings.Builder, slices.Contains,
maps helpers, min/max builtins.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 21:00:17 +00:00
Snider
45f119b9ac feat: extract go-webview from core/go pkg/webview
Chrome DevTools Protocol client for browser automation.
Zero external dependencies (stdlib only).
Module: forge.lthn.ai/core/go-webview

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-19 16:09:11 +00:00