Commit Graph
18 Commits
Author SHA1 Message Date
aykhans 4a14d57d15 fix(config): reject a hidden YAML document and drop Go types from errors 2026-09-30 12:29:00 +04:00
aykhans 633f548e7b fix(config): report YAML config errors more clearly 2026-09-30 01:07:28 +04:00
aykhans 1956eb1c44 fix(script): enforce script body limits without streaming
Streaming accepted a chunked body cut at a chunk boundary as complete,
so the limit now comes from the client that reads the body, picked per
requested size. Script requests keep their own default, maxBodySize
accepts sizes like 10MiB, and files sarin downloads for itself are
capped at 64MiB.
2026-09-29 00:41:48 +04:00
aykhans f1d91e3d77 feat: limit response body sizes
fasthttp allocates the body from the declared Content-Length before
reading it, so a server could exhaust memory by declaring a size it
never sends. The new max response body config bounds every response,
defaults to 10MiB and accepts sizes like 10MiB or 2MB. Scripts get the
same as a maxBodySize option on http().
2026-09-28 22:49:39 +04:00
aykhans 8b437b487c feat(script): add http() and json to Lua and JS scripts 2026-09-20 23:02:51 +04:00
aykhans c195ca2ab2 refactor: print stderr via fmt.Fprint with lipgloss.Sprintln instead of lipgloss.Fprintln 2026-08-17 20:11:47 +04:00
aykhans e13eb9b8a8 fix: treat zero-sized ptys as non-interactive 2026-08-17 19:11:55 +04:00
aykhans d68c557dd3 fix: restore pre-v2 progress bar fill and viewport scroll behavior 2026-08-17 18:57:33 +04:00
aykhans d08b6dc222 refactor: migrate Charm libraries to v2
Import paths moved to charm.land/*/v2 and the v1 paths no longer resolve.
Ports View() -> tea.View, AltScreen/MouseMode to View fields, KeyPressMsg,
and the new progress/viewport constructors. Styled output outside Bubble
Tea switched to lipgloss.Print* because v2 downsamples colour at the output
layer. vendorHash refreshed.
2026-08-17 17:21:13 +04:00
aykhans 80a8ba1d59 feat(logging): add runtime log levels, response logging, and progress/log-file controls
- --log-level (comma-separated string: info, error): pick which logs are emitted;
  the level set is resolved once, up front
- Log responses at the info level: full self-contained JSON to a file or stderr,
  a compact "status duration | body" summary in the TUI log box
- Route logs independently of the progress display: the TUI log box when it runs,
  stderr when piped, or a file via --log-file/-w (parent dir validated up front)
- Replace --quiet with --progress (bar | none, default bar): progress and logs are
  now independent — progress=none still shows the log box; quiet == progress=none
  with an empty log level
- Rename the internal "message" concept to "log" (runtimeLog, runtimeLogger, ...)
2026-07-22 23:20:14 +04:00
aykhans 026d05f1bf chore: bump Go to 1.26.1 and golangci-lint to v2.11.2; fix typos and lint nolints 2026-03-10 02:32:40 +04:00
aykhans 61af28a3d3 Override Methods and Bodies instead of appending in Config.Merge 2026-02-15 16:27:36 +04:00
aykhans d346067e8a Rename Append to Merge, replace strings_Join with slice_Join, and auto-detect non-TTY output
- Rename Append to Merge on Cookies, Headers, and Params types and simplify Parse to use direct append
- Replace strings_Join(sep, ...values) with slice_Join(slice, sep) for consistency with slice-based template functions
- Auto-enable quiet mode when stdout is not a terminal
- Remove ErrCLINoArgs check to allow running sarin without arguments
- Add -it flag to Docker examples in docs
2026-02-15 02:56:32 +04:00
aykhans 3be8ff218c Replace common.ToPtr with Go 1.26 builtin new and add go fix to CI 2026-02-13 18:56:10 +04:00
aykhans c1584eb47b Remove unused functions and unexport internal sentinel error 2026-02-09 00:06:01 +04:00
aykhans 6dafc082ed Introduce structured error types and bump Go/linter versions
Replace ad-hoc fmt.Errorf/errors.New calls with typed error structs across config, sarin, and script packages to enable type-based error handling. Add script-specific error handlers in CLI entry point. Fix variable shadowing bug in Worker for scriptTransformer. Bump Go to 1.25.7 and golangci-lint to v2.8.0.
2026-02-08 02:54:54 +04:00
aykhans 533ced4b54 add scripting js/lua 2026-01-28 14:21:08 +04:00
aykhans 2d7ba34cb8 v1.0.0: here we go again 2026-01-10 17:06:25 +04:00