Files
triggershell/app
valknarandClaude Sonnet 5 004586ee64 Enforce required on string/multiselect variables without explicit bounds
required:true only worked by accident: a bare z.string() or
z.array(...) accepts "" / [] just fine, so a required field with no
minLength (e.g. secret tokens like webhookToken, apiKey) could be
submitted empty and the run would start anyway. Required now implies
min(1) when no stricter bound is already configured, for both string
and multiselect fields. This is the single schema shared by the client
form resolver and the server run-creation route, so both now reject it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-16 00:06:39 +02:00
..

TriggerShell web app

This is the Next.js app that TriggerShell's Python CLI (triggershell dev / triggershell start) launches — it's not meant to be run standalone with next dev/next start since it needs a custom server (server.ts) for the WebSocket endpoint.

See the repo root README for how to run TriggerShell end-to-end, and ../docs/ARCHITECTURE.md for how this app is put together.

pnpm install
pnpm dev          # tsx watch server.ts - reads TRIGGERSHELL_CONFIG_PATH from the environment
pnpm lint
pnpm typecheck
pnpm db:studio    # browse the SQLite database