Commit graph

16 commits

Author SHA1 Message Date
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