Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
96cd980
ci: add --print-logs to PR Cleanup SST commands for diagnostics
imharrisonking Jul 31, 2026
7336124
docs: reorganize docs/ into space-based structure
imharrisonking Aug 3, 2026
8787f30
docs: remove old docs/ structure (migrated to docs/core/)
imharrisonking Aug 3, 2026
6fa4bb2
docs: migrate issues to .issues/ with template
imharrisonking Aug 3, 2026
7dfcf0a
docs: migrate specs to .plan/ and remove dormant artifacts
imharrisonking Aug 3, 2026
4ada4d3
docs: update all references to new doc paths
imharrisonking Aug 3, 2026
9dbab40
feat: add GitHub issue sync, agent skills setup, and chat wayfinder map
imharrisonking Aug 3, 2026
576b619
docs: resolve chat wayfinder decisions — durable stream architecture …
imharrisonking Aug 3, 2026
8098ace
docs: resolve chat run endpoint & transport decision (iss-015) — web …
imharrisonking Aug 4, 2026
2584002
feat: Removes app-example package, no longer needed as a reference
imharrisonking Aug 4, 2026
f4d29b2
feat: Removes marketing-site-example package, not longer needed as a …
imharrisonking Aug 4, 2026
1391245
feat: Updates app.css and styling of components in components/ui
imharrisonking Aug 4, 2026
c5dc40c
feat(web): prototype chat UX layouts (iss-017) — rail / breadcrumb / …
imharrisonking Aug 6, 2026
7afe11a
fix(ci): make PR environment cleanup recoverable (#73)
imharrisonking Aug 6, 2026
ac7b672
feat(chat): add persisted conversation foundation (#74)
imharrisonking Sep 18, 2026
65608e6
chore: decommission Electric Cloud infrastructure (#77)
imharrisonking Sep 21, 2026
aa3a3d0
fix: clean preview stages for closed PRs (#78)
imharrisonking Sep 21, 2026
8700f81
Merge origin/production into dev promotion
imharrisonking Sep 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 27 additions & 15 deletions .github/workflows/pr-preview-cleanup.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
name: PR Cleanup

on:
pull_request:
# Run from the base branch so closing a PR targeting dev is cleaned up too.
# This workflow only destroys an explicitly derived pr-N stage and does not
# execute code from the closed PR.
pull_request_target:
types: [closed]
workflow_dispatch:
inputs:
Expand All @@ -16,7 +19,7 @@ permissions:

env:
AWS_REGION: eu-west-2
STAGE_NAME: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('pr-{0}', github.event.inputs.pr_number) }}
STAGE_NAME: ${{ github.event_name == 'pull_request_target' && format('pr-{0}', github.event.pull_request.number) || format('pr-{0}', github.event.inputs.pr_number) }}

jobs:
# ===========================================
Expand Down Expand Up @@ -58,22 +61,31 @@ jobs:
# credentials, and provider errors should fail the job directly.
run: |
set +e
LOG_FILE="$RUNNER_TEMP/sst-remove.log"
npx sst remove --stage "${{ env.STAGE_NAME }}" --print-logs 2>&1 | tee "$LOG_FILE"
EXIT_CODE=${PIPESTATUS[0]}
MAX_ATTEMPTS=3
for attempt in $(seq 1 "$MAX_ATTEMPTS"); do
LOG_FILE="$RUNNER_TEMP/sst-remove-${attempt}.log"
npx sst remove --stage "${{ env.STAGE_NAME }}" --print-logs 2>&1 | tee "$LOG_FILE"
EXIT_CODE=${PIPESTATUS[0]}

if [ "$EXIT_CODE" -eq 0 ]; then
exit 0
fi
if [ "$EXIT_CODE" -eq 0 ]; then
exit 0
fi

if grep -Eiq 'lock|already[[:space:]]+running|another[[:space:]].*process|acquir(e|ing).*state' "$LOG_FILE"; then
echo "lock_failure=true" >> "$GITHUB_OUTPUT"
echo "SST removal failed because the stage appears to be locked; retrying after unlock."
exit 0
fi
if grep -Eiq 'lock|already[[:space:]]+running|another[[:space:]].*process|acquir(e|ing).*state' "$LOG_FILE"; then
echo "lock_failure=true" >> "$GITHUB_OUTPUT"
echo "SST removal failed because the stage appears to be locked; retrying after unlock."
exit 0
fi

echo "SST removal failed for a non-lock error; not retrying."
exit "$EXIT_CODE"
if grep -Eiq 'bad status: 5[0-9]{2}|gateway timeout|could not install bun|timed out|econnreset' "$LOG_FILE" && [ "$attempt" -lt "$MAX_ATTEMPTS" ]; then
echo "Transient SST bootstrap/network failure; retrying in 10 seconds (attempt $((attempt + 1))/$MAX_ATTEMPTS)."
sleep 10
continue
fi

echo "SST removal failed for a non-retryable error."
exit "$EXIT_CODE"
done

- name: Clear stale SST lock
if: steps.destroy.outputs.lock_failure == 'true'
Expand Down
26 changes: 7 additions & 19 deletions docs/core/development/development_tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,27 +190,15 @@ npx sst dev # Default multiplexed mode with tabbed UI (Linux/mac
- Use `--mode=mono` to avoid log file accumulation (logs go to stdout only)
- If enabling `--print-logs` or `--verbose`, monitor disk usage: `du -sh .sst/`

### Caddy HTTP/2 Proxy (Local Development)
### Local Dev Server (port 3000)

`sst dev` auto-starts Caddy as an HTTP/2 reverse proxy via an `sst.x.DevCommand`.
Electric SQL's long-polling shapes benefit from HTTP/2 multiplexing; Vite's dev
server only supports HTTP/1.1 (6 concurrent connections per domain).
`sst dev` serves the app directly from Vite on `http://localhost:3000` —
no reverse proxy required. (An earlier Caddy HTTP/2 proxy existed for
Electric SQL's long-polling shapes; it was removed with the Electric
decommission.)

**One-time setup:**

```bash
brew install caddy
sudo security add-trusted-cert -d -r trustRoot \
-k /Library/Keychains/System.keychain \
~/.local/share/caddy/pki/authorities/local/root.crt
```

**Usage:** access the app at `https://localhost:3010/app` (not port 3000).
All agent-browser commands and tests should use port 3010.

If Caddy isn't installed, the DevCommand pane shows a helpful error but doesn't
crash the rest of `sst dev`. Port 3000 still works directly, but Electric shapes
will be slower due to the HTTP/1.1 connection limit.
**Usage:** access the app at `http://localhost:3000/app`. All agent-browser
commands and tests should use port 3000.

---

Expand Down
16 changes: 0 additions & 16 deletions infra/dev.ts

This file was deleted.

Loading
Loading