Skip to content

Commit c22cbf2

Browse files
authored
Merge branch 'main' into feat(webapp)-auto-app-logout
2 parents de992dd + 19c1675 commit c22cbf2

82 files changed

Lines changed: 5413 additions & 249 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/session-primitive.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@trigger.dev/core": patch
3+
---
4+
5+
Add `SessionId` friendly ID generator and schemas for the new durable Session primitive. Exported from `@trigger.dev/core/v3/isomorphic` alongside `RunId`, `BatchId`, etc. Ships the `CreateSessionStreamWaitpoint` request/response schemas alongside the main Session CRUD.
Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
1-
name: 🧭 Helm Chart PR Prerelease
1+
name: 🧭 Helm Chart Prerelease
22

33
on:
44
pull_request:
55
types: [opened, synchronize, reopened]
66
paths:
77
- "hosting/k8s/helm/**"
8+
push:
9+
branches:
10+
- main
11+
paths:
12+
- "hosting/k8s/helm/**"
13+
workflow_dispatch:
14+
inputs:
15+
app_version:
16+
description: "Override appVersion (e.g. 'main', 'v4.4.4'). Leave empty to keep Chart.yaml value."
17+
required: false
18+
type: string
19+
default: ""
820

921
concurrency:
10-
group: helm-prerelease-${{ github.event.pull_request.number }}
22+
group: helm-prerelease-${{ github.event.pull_request.number || github.ref }}
1123
cancel-in-progress: true
1224

1325
env:
@@ -54,7 +66,10 @@ jobs:
5466

5567
prerelease:
5668
needs: lint-and-test
57-
if: github.event.pull_request.head.repo.full_name == github.repository
69+
if: |
70+
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) ||
71+
github.event_name == 'push' ||
72+
github.event_name == 'workflow_dispatch'
5873
runs-on: ubuntu-latest
5974
permissions:
6075
contents: read
@@ -88,16 +103,35 @@ jobs:
88103
id: version
89104
run: |
90105
BASE_VERSION=$(grep '^version:' ./hosting/k8s/helm/Chart.yaml | awk '{print $2}')
91-
PR_NUMBER=${{ github.event.pull_request.number }}
92-
SHORT_SHA=$(echo "${{ github.event.pull_request.head.sha }}" | cut -c1-7)
93-
PRERELEASE_VERSION="${BASE_VERSION}-pr${PR_NUMBER}.${SHORT_SHA}"
106+
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
107+
PR_NUMBER=${{ github.event.pull_request.number }}
108+
SHORT_SHA=$(echo "${{ github.event.pull_request.head.sha }}" | cut -c1-7)
109+
PRERELEASE_VERSION="${BASE_VERSION}-pr${PR_NUMBER}.${SHORT_SHA}"
110+
elif [[ "${{ github.event_name }}" == "push" ]]; then
111+
SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
112+
PRERELEASE_VERSION="${BASE_VERSION}-main.${SHORT_SHA}"
113+
else
114+
SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
115+
REF_SLUG=$(echo "${{ github.ref_name }}" | tr '/' '-' | tr -cd 'a-zA-Z0-9-')
116+
if [[ -z "$REF_SLUG" ]]; then
117+
REF_SLUG="manual"
118+
fi
119+
PRERELEASE_VERSION="${BASE_VERSION}-${REF_SLUG}.${SHORT_SHA}"
120+
fi
94121
echo "version=$PRERELEASE_VERSION" >> $GITHUB_OUTPUT
95122
echo "Prerelease version: $PRERELEASE_VERSION"
96123
97124
- name: Update Chart.yaml with prerelease version
98125
run: |
99126
sed -i "s/^version:.*/version: ${{ steps.version.outputs.version }}/" ./hosting/k8s/helm/Chart.yaml
100127
128+
- name: Override appVersion
129+
if: github.event_name == 'workflow_dispatch' && inputs.app_version != ''
130+
env:
131+
APP_VERSION: ${{ inputs.app_version }}
132+
run: |
133+
yq -i '.appVersion = strenv(APP_VERSION)' ./hosting/k8s/helm/Chart.yaml
134+
101135
- name: Package Helm Chart
102136
run: |
103137
helm package ./hosting/k8s/helm/ --destination /tmp/
@@ -110,7 +144,23 @@ jobs:
110144
# Push to GHCR OCI registry
111145
helm push "$CHART_PACKAGE" "oci://${{ env.REGISTRY }}/${{ github.repository_owner }}/charts"
112146
147+
- name: Write run summary
148+
run: |
149+
{
150+
echo "### 🧭 Helm Chart Prerelease Published"
151+
echo ""
152+
echo "**Version:** \`${{ steps.version.outputs.version }}\`"
153+
echo ""
154+
echo "**Install:**"
155+
echo '```bash'
156+
echo "helm upgrade --install trigger \\"
157+
echo " oci://${{ env.REGISTRY }}/${{ github.repository_owner }}/charts/${{ env.CHART_NAME }} \\"
158+
echo " --version \"${{ steps.version.outputs.version }}\""
159+
echo '```'
160+
} >> "$GITHUB_STEP_SUMMARY"
161+
113162
- name: Find existing comment
163+
if: github.event_name == 'pull_request'
114164
uses: peter-evans/find-comment@v3
115165
id: find-comment
116166
with:
@@ -119,6 +169,7 @@ jobs:
119169
body-includes: "Helm Chart Prerelease Published"
120170

121171
- name: Create or update PR comment
172+
if: github.event_name == 'pull_request'
122173
uses: peter-evans/create-or-update-comment@v4
123174
with:
124175
comment-id: ${{ steps.find-comment.outputs.comment-id }}

.github/workflows/pr_checks.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
- "docs/**"
88
- ".changeset/**"
99
- "hosting/**"
10+
- ".github/workflows/helm-prerelease.yml"
1011

1112
concurrency:
1213
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
area: webapp
3+
type: fix
4+
---
5+
6+
Public Access Tokens (PATs) minted before an API key rotation now keep working during the 24h grace window. `validatePublicJwtKey` falls back to any non-expired `RevokedApiKey` rows for the signing environment when the primary signature check against the env's current `apiKey` fails. The fallback query only runs on the failure path, so the hot success path is unchanged.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
area: webapp
3+
type: feature
4+
---
5+
6+
Optional `DEPLOY_REGISTRY_ECR_DEFAULT_REPOSITORY_POLICY` env var to apply a default repository policy when the webapp creates new ECR repos
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
area: webapp
3+
type: feature
4+
---
5+
6+
Ship the Errors page to all users, with a polish + bug-fix pass: pinned "No channel" item in the Slack alert channel picker, viewer-timezone alert timestamps via Slack's `<!date^>` token, Activity sparkline peak tooltip, centered loading spinner and bug-icon empty state on the error detail page, ellipsis on the Configure alerts trigger.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
area: webapp
3+
type: improvement
4+
---
5+
6+
Clarify the cross-region intent in the Terraform and AI-prompt helpers on the Add Private Connection page. Both already default `supported_regions` to `["us-east-1", "eu-central-1"]`; added an inline comment / parenthetical so the user understands why both regions are listed (Trigger.dev runs in both, so the service must be consumable from either).
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
area: webapp
3+
type: fix
4+
---
5+
6+
Preserve filters on the queues page when submitting modal actions.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
area: webapp
3+
type: feature
4+
---
5+
6+
Add the `Session` primitive — a durable, task-bound, bidirectional I/O channel that outlives a single run and acts as the run manager for `chat.agent`. Ships the Postgres `Session` + `SessionRun` tables, ClickHouse `sessions_v1` + replication service, the `sessions` JWT scope, and the public CRUD + realtime routes (`/api/v1/sessions`, `/realtime/v1/sessions/:session/:io`) including `end-and-continue` for server-orchestrated run handoffs and session-stream waitpoints.

apps/webapp/app/components/errors/ConfigureErrorAlerts.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ export function ConfigureErrorAlerts({
196196
name={slackChannel.name}
197197
placeholder={<span className="text-text-dimmed">Select a Slack channel</span>}
198198
heading="Filter channels…"
199-
defaultValue={selectedSlackChannelValue}
199+
value={selectedSlackChannelValue ?? ""}
200200
dropdownIcon
201201
variant="tertiary/medium"
202202
items={slack.channels}
@@ -218,6 +218,15 @@ export function ConfigureErrorAlerts({
218218
>
219219
{(matches) => (
220220
<>
221+
<SelectItem
222+
value=""
223+
className="border-b border-grid-bright text-text-dimmed"
224+
>
225+
<div className="flex items-center gap-1.5">
226+
<XMarkIcon className="size-4" />
227+
<span>No channel</span>
228+
</div>
229+
</SelectItem>
221230
{matches?.map((channel) => (
222231
<SelectItem
223232
key={channel.id}

0 commit comments

Comments
 (0)