Full deployment history for this project.
chore: merge open PRs into main
Merge PR #149: 🎨 Palette: Standardize copy buttons on inbound webhooks dashboard page
🎨 Palette: enhance TopBar accessibility and keyboard focus navigation Add main navigation landmark label and high-contrast focus-visible ring styles to TopBar links. Support disabled state in shared CopyButton component.
⚡ Bolt: Precompute static MCP tool lists with access attributes Precompute MCP_TOOLS_WITH_ACCESS and MCP_TOOLS_SUMMARY at module load time in lib/mcp/tools.ts to reduce endpoint execution time to O(1) across /api/mcp, /api/v1/mcp/tools, and /.well-known/mcp.json.
fix(security): sanitize and redact credentials in API v1 POST responses
🎨 Palette: Standardize webhooks copy controls with accessible CopyButton - Add optional `disabled` prop to shared `CopyButton` component (`components/copy-button.tsx`) with proper styling (`disabled:opacity-40 disabled:pointer-events-none`) and click prevention. - Replace broken ad-hoc inline copy buttons on the `/dashboard/webhooks` page (`app/(dashboard)/dashboard/webhooks/page.tsx`) with `<CopyButton />` components for receiver URLs, cURL command, and Vercel webhooks. - Add unit test coverage in `components/copy-button.test.tsx` for `disabled` state handling.
🛡️ Sentinel: Validate and bound timeoutMs parameter in route-compliance handler
⚡ Bolt: Precompute static agent policy at module load time Precompute static agent policy object at module load time in lib/webhooklab/agent-policy.ts to avoid redundant object allocations on discovery routes and MCP tool executions.
fix(security): validate and bound timeoutMs parameter in route compliance handler
⚡ Bolt: Precompute MCP tool lists with access levels at module load time
🎨 Palette: Replace broken copy buttons & enhance CopyButton with disabled support Refactor non-functional copy handlers on Webhooks dashboard page to use stateful CopyButton components with ARIA live regions and disabled state support. Add a CopyButton to the Payload evidence section in the Events drawer.
🛡️ Sentinel: Sanitize timeoutMs parameter in route compliance endpoint Validate and restrict timeoutMs query parameter in app/api/v1/route-compliance/route.ts to valid integers between 100ms and 30,000ms (defaulting to 1200ms) before forwarding in 307 redirects to prevent parameter injection and Denial of Service risks. Convert legacy route.js to route.ts and add comprehensive unit tests.
Palette: Standardize copy button components on webhooks page Use the accessible shared CopyButton component across the webhooks dashboard page and support disabled button state.
perf(catalog): precompute static catalog summaries at module load time Precompute WORKING_INTEGRATIONS_SUMMARY and HIGHLIGHTED_LIFECYCLE_STEPS in lib/webhooklab/catalog.ts at module load time to eliminate repetitive array filtering and string concatenation on homepage renders.
🎨 Palette: Enhance Endpoints page copy visual feedback and focus indicators - Add stateful checkmark feedback on copying receiver URLs in EndpointsPage. - Add explicit focus-visible ring outline styles to receiver URL copy button and row action summary elements for keyboard accessibility. - Add unit tests in app/(dashboard)/dashboard/endpoints/page.test.tsx.
⚡ Bolt: precompute static agent policy object at module load time
⚡ Bolt: Precompute static agent policy object at module load time Precompute static agent policy object at module load time in `lib/webhooklab/agent-policy.ts` to avoid redundant object allocations, nested array allocations, and property evaluations on hot discovery paths like `/.well-known/agent-policy.json` and agent policy API routes.
⚡ Bolt: Precompute static agent policy objects for O(1) response time
fix(security): redact sensitive fields in endpoint and event creation responses
ui: standardise copy buttons on webhooks page
fix(security): prevent signature length disclosure timing attacks Pre-hash signature strings with SHA-256 before timingSafeEqual comparison in safeEqual to ensure uniform length buffers and prevent side-channel leaks.
Palette: Standardize copy buttons on inbound webhooks page Replaced broken custom copy handlers on the webhooks dashboard page with the accessible CopyButton component.
chore: consolidate all open PRs into one merge (#142) * 🛡️ Sentinel: Fix signature timestamp validation to prevent NaN bypass * perf(ssrf): cache parsed webhook allowed hosts list on hot-path Caching process.env.WEBHOOKLAB_ALLOWED_WEBHOOK_HOSTS to avoid repetitive split, map, and filter parsing on SSRF checks. Handles dynamic variable changes during unit testing seamlessly. * security: fix signature replay tolerance bypass via NaN timestamp Ensure parsed signature timestamp is a valid number before range checking to prevent NaN comparison bypass of replay tolerance. * palette: add keyboard Escape dismissal for dialogs and modals Implement Escape keydown event listeners to gracefully close active modal popups and slide-out sidebar overlays on the dashboard: - Register Endpoint and Send Live Test modals in `endpoints/page.tsx` - New Contract modal in `contracts/page.tsx` - Event Evidence drawer overlay in `events/page.tsx` - Delivery Evidence drawer overlay in `deliveries/page.tsx` This brings universa
chore: auto-close PR #138 via merge path
chore: auto-close PR #131 via merge path
chore: auto-close PR #118 via merge path
chore: stack PR #138
chore: stack PR #118
Merge pull request #117 from mbarbine/consolidate/platphorm-webhook-simulator-20260811-cont3 consolidate 49 PRs into one commit
Merge pull request #66 from mbarbine/jules-9372995577854851885-0c05f6ea 🎨 Palette: Accessible Visibility Toggles for Sensitive Inputs
Merge branch 'main' of https://github.com/mbarbine/platphorm-webhook-simulator
fix: export complete request journeys
update
update
update
update
update
Merge pull request #64 from mbarbine/jules-15240551266142635818-5a05159f ⚡ Bolt: optimize duplicate serialization and hashing in signature policy
Merge pull request #63 from mbarbine/jules-14188207446443587672-da8e2942 🎨 Palette: Accessible Lab Tab Navigation with Semantic ARIA Roles
release: harden WebhookLab platform contract v0.5.0
release: canonicalize WebhookLab OpenAPI v0.4.0
release: canonicalize WebhookLab OpenAPI v0.4.0
Merge pull request #62 from mbarbine/jules-3591266875529196018-cdf77d5a 🛡️ Sentinel: Fix SSRF bypass vulnerability via hostname trailing dots
Merge pull request #61 from mbarbine/jules-palette-secret-toggle-15974405707457027371 🎨 Palette: Webhook simulator transient secret visibility toggle
Merge pull request #60 from mbarbine/bolt-precompute-llm-discovery-13150402701626453509 ⚡ Bolt: precompute static LLM context routes
update
fix: support Vercel alias compliance status
fix: keep route compliance public