Conversation
The Schedule and Next Run fields on the automation overview page were hardcoded to "Every Day 9:00 AM" and "Tomorrow 9:00 AM" with no timezone label. The backend cron actually runs at 09:00 UTC (see comp-private/apps/enterprise-api/src/trigger/automation/run-automations-schedule.ts), so a customer in UTC+3 would see the automation fire at noon local even though the UI said 9:00 AM. The "Tomorrow" literal was also wrong whenever today's 09:00 UTC hadn't passed yet. Label the schedule as "Every day at 9:00 AM UTC" and compute the next 09:00 UTC occurrence as a real Date, then render it in the user's locale/timezone — matching the existing pattern in BrowserAutomationsList and ScheduledScanPopover. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
[dev] [Marfuen] mariano/eng-202-create-separate-docs-or-api-for-admin-routes
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
Descriptions authored in the Framework Editor are markdown — bullets, bold, headings, blockquotes — and the editor preview renders them via ReactMarkdown. But the main app rendered the same string as plain text with whiteSpace: 'pre-line', so users saw literal "**" and "- " characters instead of formatted content. PR #2327 previously added whiteSpace: 'pre-line' which fixed bare newlines, but left markdown syntax raw. Swap the plain <Text> for the existing MarkdownRenderer (already used in the task automation chat). Click-to-edit behavior preserved by wrapping in a clickable div. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…108) The legacy PoliciesTable + PolicyFilters wiring was removed when we migrated to PoliciesTableDS in Jan 2026 (commit 8974418). Since then the page wrapped <PolicyFilters> in PolicyTailoringProvider with an empty statuses map, so the per-row "Tailoring/Queued/Preparing" UI that PoliciesTableDS already renders had no data to show. Vendors and Risks were restored at the time; Policies was left missing. Wires it back up without touching the trigger.dev pipeline (which still emits policiesTotal/policiesCompleted/policy_<id>_status as before): 1. policies/(overview)/hooks/use-policy-onboarding-status.ts — new hook mirroring the risks/vendors ones, using useRealtimeRun. Handles the policies/policy singular/plural conversion correctly (the shared hook's `itemType.slice(0,-1)` would have produced "policie_"). 2. policies/(overview)/page.tsx — fetch /v1/organization/onboarding alongside /v1/policies (same pattern as risks/vendors) and pass the trigger run id into PolicyFilters. Move PolicyTailoringProvider into PolicyFilters since that's where the realtime data lives. 3. PolicyFilters.tsx — accept onboardingRunId, subscribe via the hook, wrap children in PolicyTailoringProvider with live statuses, render the "Tailoring your policies – Personalized N/M" banner while the run is active. Orphaned apps/app/.../policies/all/components/policies-table.tsx (the pre-migration table, now dead code) is left in place for a follow-up cleanup PR so this diff stays scoped. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…on mismatch (CS-97 review) cubic flagged a real hydration risk on PR #2579: the Next Run label was computed synchronously during render with `new Date()` + `toLocaleString(undefined, …)`. Node.js renders in the server's timezone and locale (typically UTC) while the browser renders in the user's, so the HTML from SSR could differ from the first client render — especially around 09:00 UTC where `new Date()` between the two renders could flip the computed day. Switch from useMemo to useState + useEffect so the label is only computed on the client, after mount. Render an em-dash placeholder during SSR; it's replaced with the real weekday/time on mount. The initial client HTML now matches the server HTML exactly. Adds an SSR-safe-placeholder test using renderToString to lock in the property that the initial render contains no formatted weekday or time. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…r test (CS-97 review) Two follow-ups from cubic on PR #2579: 1. P2: The next-run label rendered "Fri 12:00 PM" with no timezone indicator, which is ambiguous right next to the "9:00 AM UTC" Schedule card — users can't tell if it's local or UTC, the exact confusion this PR was supposed to fix. Add `timeZoneName: 'short'` so the output reads e.g. "Thu, 5:00 AM EDT" (local) or "Thu 9:00 AM UTC" (for a UTC viewer). 2. P3: The SSR-placeholder test asserted `expect(html).toContain('—')` which also matches the Success Rate card's `—` when there are no runs, so it would pass even if the Next Run placeholder were gone. Scope the assertion to the Next Run cell via a regex that matches the "Next Run" label's adjacent `<p>` value. Test regex also updated to tolerate a comma after the weekday — Node and some browser locales emit "Thu, 5:00 AM EDT" rather than a bare "Thu 5:00 AM EDT". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix(automations): show schedule in UTC and next run in user tz (CS-97)
…ing-ui fix(policies): restore AI-tailoring UI on the Policies page (ENG-108)
…cription fix(tasks): render task description markdown in the main app (CS-98)
Contributor
|
🎉 This PR is included in version 3.23.3 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.
Summary by cubic
Separates admin/internal/auth routes from the public API docs and adds clear operation summaries. Fixes Automations timezone labels, restores the Policies AI‑tailoring UI, and renders task descriptions as markdown. Satisfies ENG-202.
New Features
/v1/admin,/v1/auth, and/v1/internal; add@ApiOperationsummaries across public controllers; Swagger server derives fromBASE_URLwith an env-aware label.src/openapi-docs.spec.tsasserts hidden paths and non-empty summaries;src/gen-openapi.spec.tsregeneratespackages/docs/openapi.json(GEN_OPENAPI=1);scripts/audit-openapi-summaries.tsflags missing/auto-generated summaries.Bug Fixes
/v1/organization/onboardingintoPolicyFiltersand subscribing viausePolicyOnboardingStatus.MarkdownRenderer; keeps click-to-edit behavior.Written for commit 75c5fb8. Summary will update on new commits.