Skip to content

Releases: Ripwords/ReproJs

🚀 Dashboard v0.6.2

19 May 04:58

Choose a tag to compare

🚀 Repro Dashboard v0.6.2 — self-hostable Docker image: ripwords/reprojs-dashboard:v0.6.2.

compare changes

🩹 Fixes

  • mcp: Point OAuth loginPage at the real /auth/sign-in route (96823c3)

❤️ Contributors

🚀 Dashboard v0.6.1

19 May 04:35

Choose a tag to compare

🚀 Repro Dashboard v0.6.1 — self-hostable Docker image: ripwords/reprojs-dashboard:v0.6.1.

compare changes

🩹 Fixes

  • dashboard: Correct horizontal bar axis + donut segment slivers (0009331)

❤️ Contributors

🚀 Dashboard v0.6.0

19 May 04:02

Choose a tag to compare

🚀 Repro Dashboard v0.6.0 — self-hostable Docker image: ripwords/reprojs-dashboard:v0.6.0.

compare changes

🚀 Enhancements

  • mcp: Add MCP_ENABLED + tunable env vars (2a56bb0)
  • mcp: Scaffold replay transcript reducer (0efdc09)
  • mcp: Build DOM map from FullSnapshot for selector resolution (2c3567c)
  • mcp: Emit navigation, coalesced inputs, console.error (26f859f)
  • mcp: Cap transcript size with middle truncation (0384931)
  • auth: Add requireProjectRoleByUser for non-H3 callers (db1b076)
  • mcp: Wire oauth-provider + jwt plugins behind MCP_ENABLED (c3a29ba)
  • mcp: Add OAuth consent page + decision endpoint (f8583b6)
  • mcp: Add McpToolError + helper (400c570)
  • mcp: Add JWT → request context builder (439314e)
  • mcp: Add repro_list_projects tool (41239b5)
  • mcp: Add repro_get_ticket tool with inline replay transcript (b9e6a8d)
  • mcp: Per-request McpServer factory with both tools (f1cc067)
  • mcp: Add Streamable HTTP /api/mcp routes (POST/GET/DELETE) (3759a76)
  • mcp: Add cursor encode/decode helper for pagination (ef962e7)
  • mcp: Add repro_list_tickets with filters + cursor pagination (5f42bf7)
  • mcp: Add repro_list_ticket_comments with cursor pagination (68b5e14)
  • mcp: Add repro_list_project_members (60e7459)
  • mcp: Add repro_get_screenshot tool (106e998)
  • mcp: Add repro_get_replay_transcript tool (d5389b9)
  • mcp: Add repro_get_replay_raw with 200KB acknowledgeSize cap (7e5577f)
  • mcp: Add repro_get_ticket_cookies (opt-in cookies surface) (761f62c)
  • mcp: Register Phase 2 tools in McpServer factory (0f219f4)
  • db: Add actor_client_id audit column + github_linked event kind (27d1662)
  • mcp: Add 4 write tools (update/comment/link/unlink) (eddac03)
  • mcp: Register Phase 3 write tools in McpServer factory (89dda29)
  • mcp: Add /api/me/mcp-connections list + revoke endpoints (d68b8a7)
  • mcp: Add /settings/mcp page (connect snippets + connected apps) (9836a5d)
  • mcp: Flip MCP_ENABLED default to true (9483645)
  • mcp: Add per-request access check (status + allowlist) (8720976)
  • mcp: Add per-user rate limiter to access checker (8261c62)
  • mcp: Wire access check into Streamable HTTP routes (a2c3d14)
  • mcp: Add RFC 9728 protected-resource metadata endpoint (2a7f509)
  • shared: Add volume series to AdminOverviewDTO (c0e3a70)
  • dashboard: Add 30-day report volume series to admin overview (9723bd1)
  • dashboard: Add insight charts to admin overview (9f50c84)
  • dashboard: Add pure pollUntil helper (b954f5b)

🔥 Performance

  • mcp: Fold last-used lookup into single grouped query (43c3804)

🩹 Fixes

  • mcp: Use env.BETTER_AUTH_URL not request headers for OAuth metadata URL (babb73a)
  • mcp: Filter out soft-deleted projects in repro_list_projects (4a117bf)
  • mcp: Coerce raw body to Buffer before Uint8Array conversion (1784c96)
  • mcp: Correct JWT issuer and consent response parsing (9270e52)
  • dashboard: Type BarChart orientation via Orientation enum (437eadf)
  • dashboard: Refetch projects list after deleting a project (4b4de3d)
  • dashboard: Poll for github issue link before refetching in triage sidebar (3158026)
  • dashboard: Abort github-sync poll on triage drawer unmount (eb7533e)
  • Use workspace-local node_modules paths in db/auth scripts (3db3926)
  • ci: Align db scripts to workspace .bin form; set MCP_ENABLED in ci (0d19c31)
  • test: Isolate every SDK test file in its own bun process (d98e510)

💅 Refactors

  • triage: Extract applyTicketTriagePatch service function (5ba753b)
  • comments: Extract addReportComment service function (4ae056c)
  • github: Extract link/unlink service functions (217d4c2)
  • comments: Move CreateCommentBody schema to @reprojs/shared (0d14acd)
  • dashboard: Harden volume query groupBy and test anchoring (a978fc8)
  • dashboard: Clarify chart formatters and declare @unovis/ts dep (615b5cc)
  • dashboard: Share projects-list cache key constant and regroup test (3418bfe)

📖 Documentation

  • Trim filing-reports guide and add SVG illustrations (97cede5)
  • spec: MCP OAuth server design (3c3318d)
  • plan: MCP OAuth server — Phase 1 (4635ffd)
  • plan: MCP OAuth server — Phase 2 (3829a2b)
  • plan: MCP OAuth server — Phase 3 (2b786f4)
  • plan: MCP OAuth server — Phase 4 (5493949)
  • mcp: Add user guide for connecting AI assistants (564941e)
  • mcp: Add self-hosting / operator guide (db85bbe)
  • mcp: Add MCP pages to VitePress sidebar (f0627f2)
  • plan: MCP OAuth server — Phase 5 (46ad998)
  • Spec for admin overview charts + project-delete and github-sync refetch fixes (e8b414d)
  • Implementation plan for admin charts + refetch fixes (16d4fd0)
  • mcp: Add precise tool reference to the AI assistants guide (30473c4)

🏡 Chore

  • mcp: Add @better-auth/oauth-provider + @modelcontextprotocol/sdk (de0e2c0)
  • Pin oxlint to 1.59.0 (617cc92)
  • db: Regenerate OAuth tables migration after rebase (3c42538)
  • dashboard: Add nuxt-charts module (d435c35)
  • Gitignore .cursor/ IDE workspace dir (4d2c727)

✅ Tests

  • mcp: Integration — full OAuth + tools/call roundtrip (94222c5)
  • mcp: Integration tests for Phase 2 read tools (27c5180)
  • mcp: Integration tests for Phase 3 write tools (1aecf79)
  • mcp: Unfreeze Phase 1 tool-list assertion (a3c0062)
  • mcp: Add negative permissions/access integration suite (fbf39bc)

🤖 CI

  • Bump pinned bun 1.3.12 -> 1.3.13 (146ec43)

❤️ Contributors

🚀 Dashboard v0.5.2

05 May 07:25

Choose a tag to compare

🚀 Repro Dashboard v0.5.2 — self-hostable Docker image: ripwords/reprojs-dashboard:v0.5.2.

compare changes

🚀 Enhancements

  • dashboard: Redirect GitHub install to integrations page with toast (b965ccb)

🩹 Fixes

  • dashboard: Add space between actor name and event description in activity feed (0e54097)

📖 Documentation

  • Add non-technical "Filing a bug report" guide (a5370e3)

❤️ Contributors

🚀 Dashboard v0.5.1

04 May 02:04

Choose a tag to compare

🚀 Repro Dashboard v0.5.1 — self-hostable Docker image: ripwords/reprojs-dashboard:v0.5.1.

compare changes

🚀 Enhancements

  • expo: AssistiveTouch-style edge-snap drag for the launcher (96e23f0)
  • dashboard: Proxy GitHub user-attachment images (b7e4a34)
  • dashboard: Redesign report overview tab to Figma spec (8695fd5)
  • dashboard: Chat-style comments with paste-to-attach images (d79f674)

🩹 Fixes

  • release: Scope each package's CHANGELOG to its own paths (b1bb22c)
  • deploy: Dashboard runs drizzle-kit migrate on every start (11bc9b3)
  • db: Correct out-of-order when timestamp on migration 0012 (e5a3764)
  • dashboard: Show actor/event separator in activity feed (b3d5fbd)

📖 Documentation

  • expo: Add expo-document-picker + expo-image-picker to install snippet (d7aad2e)
  • site: Add expo-document-picker + expo-image-picker to Expo install guide (02e6e0d)
  • Update compat docs (e9c45ba)

🏡 Chore

❤️ Contributors

📱 Expo v0.3.0 (@reprojs/expo)

30 Apr 07:18

Choose a tag to compare

📱 Repro Expo SDK — @reprojs/expo@0.3.0 on https://www.npmjs.com/package/@reprojs/expo/v/0.3.0

compare changes

🚀 Enhancements

  • expo: AssistiveTouch-style edge-snap drag for the launcher (96e23f0)

🩹 Fixes

  • release: Scope each package's CHANGELOG to its own paths (b1bb22c)

📖 Documentation

  • expo: Add expo-document-picker + expo-image-picker to install snippet (d7aad2e)

🏡 Chore

❤️ Contributors

🚀 Dashboard v0.5.0

28 Apr 04:23

Choose a tag to compare

🚀 Repro Dashboard v0.5.0 — self-hostable Docker image: ripwords/reprojs-dashboard:v0.5.0.

compare changes

🚀 Enhancements

  • sdk-utils: Add canonical theme tokens shared by web and expo SDKs (989d8e3)
  • sdk-utils: Add Attachment shape and validateAttachments helper (a6c8159)
  • ui: Add themeToCssVars helper that emits flame/mist tokens as CSS vars (1a2e692)
  • ui: Inject flame/mist CSS vars into shadow root at mount (91a883b)
  • ui: Add PrimaryButton, SecondaryButton, FieldLabel, StepIndicator, WizardHeader (61404b5)
  • ui: Add StepDetails (replaces step-describe in 3-step wizard) (1077c55)
  • ui: Add StepReview with 'Included in this report' summary (da15040)
  • ui: Replace 2-step wizard with annotate → details → review flow (25c916f)
  • db: Add report_attachments.filename and user-file kind (9fd59b1)
  • env: Add user-file intake size budgets (01c0f9e)
  • server: Add sanitizeFilename + rollbackPuts helpers (f4bc566)
  • intake: Accept attachment[N] parts as user-file attachments (bceae0b)
  • ui: Add AttachmentList with hybrid thumbnail + chip rendering (b8070d6)
  • sdk-web: Add user attachments end-to-end (46af0bb)
  • shared: Add user-file kind and filename field to AttachmentDTO (dd715e5)
  • dashboard: Include user-file filename in report detail response (4242d52)
  • dashboard: Add AttachmentsTab for user-file attachments (f046de2)
  • dashboard: Expose user-file attachments tab in report drawer (125760a)
  • expo: Add pickFiles wrapper over expo-document-picker (d664505)
  • expo: Add AttachmentList for the mobile wizard (b2162d3)
  • expo: Add attachments to the wizard's Details step (9e64cea)
  • expo: Submit user-file attachments as attachment[N] multipart parts (716d4b6)
  • ui: Side-by-side details layout + paste-to-attach screenshots (4452729)
  • intake: Virus-scan user attachments via ClamAV sidecar (53f97a3)
  • ui: Inflight toast + clamav scan visibility (23b9349)
  • dashboard: Show clamav scan report on user-file attachments (368d63b)
  • expo: Pick attachments from Photos / Files / Clipboard (0cc0bf5)
  • extension: Retheme popup + options to flame/mist tokens (2708f72)
  • deploy: Add clamav sidecar to production compose.yaml (3690065)

🩹 Fixes

  • dashboard: Reject ?id= when authed via signed token (2485200)
  • docker: Pin clamav sidecar to linux/amd64 (7971214)
  • expo: Make clipboard paste actually work (641faad)
  • intake: Scan user-files BEFORE inserting the report row (67f0dbf)
  • ci: Isolate SDK tests per-package to prevent globalThis pollution (d829cc2)
  • build: Bump expo:build heap to 6GB (dadcb27)

💅 Refactors

  • ui: Switch styles to CSS custom properties from sdk-utils tokens (ede8899)
  • expo: Re-export shared theme tokens from sdk-utils (9ddc528)

📖 Documentation

  • specs: Add SDK wizard redesign + user attachments design (d8a9b2e)
  • plans: Add SDK wizard redesign + user attachments implementation plan (6327f12)

🏡 Chore

  • Refresh bun.lock after clamav + expo peer-dep churn (50c4cec)
  • release: Sdk-v0.4.0 (5868b7e)
  • release: Expo-v0.2.0 (df0f75e)
  • release: Extension-v0.1.2 (693a0a3)

❤️ Contributors

📦 SDK v0.4.0 (@reprojs/core)

28 Apr 04:16

Choose a tag to compare

📦 Repro SDK@reprojs/core@0.4.0 on npm

compare changes

🚀 Enhancements

  • shared: Add AdminOverviewDTO for admin overview dashboard (f76efdb)
  • api: GET /api/admin/overview aggregates across all projects (b17e400)
  • ui: /admin overview page with tiles, activity, per-project list (8719c9b)
  • ui: Add Overview to admin sidebar section (5603c5c)
  • shared: Add 'manager' to ProjectRole enum (2996a41)
  • perms: Slot manager between viewer and developer in rank (c355fdf)
  • api: Lower triage-endpoint minimum from developer to manager (bc76e5e)
  • ui: Surface manager role in members page and invite default (4bd7dc1)
  • shared: Add source discriminator and mobile device fields to ReportContext/SystemInfo (2f6effc)
  • shared: Add source and devicePlatform to ReportSummaryDTO (95ed429)
  • dashboard: Add source, device_platform, idempotency_key to reports (d863a1a)
  • dashboard: Idempotency key + source/device persistence in intake (f98d672)
  • dashboard: Populate source and devicePlatform in report DTOs (36c5774)
  • dashboard: Source filter and facets on reports list (50ac717)
  • dashboard: Inbox query supports source facet (fe4fde3)
  • dashboard: Source facet in the inbox sidebar (b0d6c55)
  • dashboard: Platform pill in the inbox row (8c9cf5f)
  • dashboard: Mobile-aware detail drawer (hide replay, show device card) (119a8f8)
  • expo: Config normalizer and internal context shape (50e2018)
  • expo: Console collector with sentinel-guarded patching (9da4569)
  • expo: Fetch network collector with header redaction (13b44f1)
  • expo: System info collector assembling mobile device context (b139522)
  • expo: Persistent queue storage with size + count caps (beb368a)
  • expo: Intake client with idempotency-key header (5f89742)
  • expo: Queue flusher and netinfo connectivity listener (921c4e3)
  • expo: View-shot capture and SVG-based annotation flatten (46c1073)
  • expo: Annotation store and gesture-based canvas (pen tool v1) (715e63f)
  • expo: Wizard sheet with form, annotate, and submit steps (a8c898c)
  • expo: Provider, useRepro hook, launcher, and module singleton (2c84d23)
  • expo: Mobile-polished annotation UX — icons, color+stroke pickers, live previews, text input (6551cc2)
  • expo: Attach logs (console + network + breadcrumbs) to intake (2a89ada)
  • expo: Redesign wizard UI + match dashboard flame palette + fix annotation submission (9688803)
  • expo: Draggable launcher snaps to nearest of 4 corners with persisted choice (674c638)
  • expo: Silent-disable when projectKey or intakeUrl is empty (1ae196a)
  • ✨ Add two way sync for github issue labels (89d3d9e)
  • webhook: Add size cap helper for github webhooks (8886440)
  • db: Add github_webhook_deliveries table for replay protection (f210471)
  • webhook: Add delivery dedupe for replay protection (f91987b)
  • webhook: Check installation id against known integrations (f1ad47e)
  • webhook: Enforce size cap, replay dedupe, installation allowlist (3865559)
  • db: Add user_identities table (github provider) (63cd11d)
  • db: Add github_write_locks table for loop avoidance (e16f5c5)
  • db: Add report_comments table (not yet wired) (80cb4d4)
  • db: Add milestone, sync timestamps, and toggle columns (964601e)
  • db: Extend report_event_kind enum for assignees/comments/milestone (fcc4a8b)
  • identities: Signed oauth state helper for link flow (e416b4d)
  • identities: Resolver + upsert + unlink helpers (c5796b2)
  • identities: GET /api/me/identities (3d1211b)
  • identities: POST start endpoint generates signed oauth url (dddb5f9)
  • identities: Callback exchanges code and upserts identity (2d1527e)
  • identities: DELETE endpoint unlinks the identity (855bcc5)
  • identities: Backfill user_identities from better-auth account rows (c511746)
  • identities: /settings/identities page with connect/disconnect (c52520f)
  • db: Report_assignees schema + backfill migration (unapplied) (44299e0)
  • shared: ReportSummaryDTO.assignees (array); TriagePatchInput.assigneeIds (572ae66)
  • github-cache: Generic per-repo cache with TTL + SWR + single-flight (4ad1071)
  • github-adapter: List labels, assignees, milestones (367f0aa)
  • api: GET repo labels for a project (2e615b4)
  • api: GET assignable users with linkedUser resolution (fb19d2c)
  • api: GET repo milestones (091d610)
  • webhook: Invalidate picker caches on label/milestone/member events (69cfba2)
  • ui: Composable exposing github integration state per project (fbc29c3)
  • shared: Add milestone + githubAssigneeLogins to reports DTOs (4c64078)
  • triage: PATCH + read endpoints support milestone + github-only assignees (a278a30)
  • ui: Labels picker backed by repo label set (9374bcc)
  • ui: Assignees picker — dashboard-linked and github-only in one list (52269e7)
  • ui: Milestone picker (db4f968)
  • triage: Wire live pickers into drawer for linked projects (56848b0)
  • github-adapter: Issue-write helpers (title, milestone, assignees, state) (0e3f571)
  • github-diff: Signature + assignee-diff helpers for write-locks (09da9bc)
  • write-locks: Record/consume/cleanup helpers (c94dd5d)
  • tasks: Daily cleanup of expired github_write_locks (57190e1)
  • reconcile: Diff + push title, labels, state, assignees, milestone with write-locks (91e4768)
  • triage: Enqueue github sync on qualifying PATCH when push_on_edit=true (a673712)
  • webhook: Assigned/milestoned/edited branches + write-lock echo skip (9cfddd6)
  • integrations: PushOnEdit UI toggle for GitHub integration (dfd32b2)
  • integration-api: Expose autoCreateOnIntake toggle ([1574a7d](https://github.com/Rip...
Read more

🧩 Tester Extension v0.1.2

28 Apr 04:20

Choose a tag to compare

🧩 Repro tester Chrome extension v0.1.2 — zip bundle attached below; also published to the Chrome Web Store.

compare changes

🚀 Enhancements

  • shared: Add AdminOverviewDTO for admin overview dashboard (f76efdb)
  • api: GET /api/admin/overview aggregates across all projects (b17e400)
  • ui: /admin overview page with tiles, activity, per-project list (8719c9b)
  • ui: Add Overview to admin sidebar section (5603c5c)
  • shared: Add 'manager' to ProjectRole enum (2996a41)
  • perms: Slot manager between viewer and developer in rank (c355fdf)
  • api: Lower triage-endpoint minimum from developer to manager (bc76e5e)
  • ui: Surface manager role in members page and invite default (4bd7dc1)
  • shared: Add source discriminator and mobile device fields to ReportContext/SystemInfo (2f6effc)
  • shared: Add source and devicePlatform to ReportSummaryDTO (95ed429)
  • dashboard: Add source, device_platform, idempotency_key to reports (d863a1a)
  • dashboard: Idempotency key + source/device persistence in intake (f98d672)
  • dashboard: Populate source and devicePlatform in report DTOs (36c5774)
  • dashboard: Source filter and facets on reports list (50ac717)
  • dashboard: Inbox query supports source facet (fe4fde3)
  • dashboard: Source facet in the inbox sidebar (b0d6c55)
  • dashboard: Platform pill in the inbox row (8c9cf5f)
  • dashboard: Mobile-aware detail drawer (hide replay, show device card) (119a8f8)
  • expo: Config normalizer and internal context shape (50e2018)
  • expo: Console collector with sentinel-guarded patching (9da4569)
  • expo: Fetch network collector with header redaction (13b44f1)
  • expo: System info collector assembling mobile device context (b139522)
  • expo: Persistent queue storage with size + count caps (beb368a)
  • expo: Intake client with idempotency-key header (5f89742)
  • expo: Queue flusher and netinfo connectivity listener (921c4e3)
  • expo: View-shot capture and SVG-based annotation flatten (46c1073)
  • expo: Annotation store and gesture-based canvas (pen tool v1) (715e63f)
  • expo: Wizard sheet with form, annotate, and submit steps (a8c898c)
  • expo: Provider, useRepro hook, launcher, and module singleton (2c84d23)
  • expo: Mobile-polished annotation UX — icons, color+stroke pickers, live previews, text input (6551cc2)
  • expo: Attach logs (console + network + breadcrumbs) to intake (2a89ada)
  • expo: Redesign wizard UI + match dashboard flame palette + fix annotation submission (9688803)
  • expo: Draggable launcher snaps to nearest of 4 corners with persisted choice (674c638)
  • expo: Silent-disable when projectKey or intakeUrl is empty (1ae196a)
  • ✨ Add two way sync for github issue labels (89d3d9e)
  • webhook: Add size cap helper for github webhooks (8886440)
  • db: Add github_webhook_deliveries table for replay protection (f210471)
  • webhook: Add delivery dedupe for replay protection (f91987b)
  • webhook: Check installation id against known integrations (f1ad47e)
  • webhook: Enforce size cap, replay dedupe, installation allowlist (3865559)
  • db: Add user_identities table (github provider) (63cd11d)
  • db: Add github_write_locks table for loop avoidance (e16f5c5)
  • db: Add report_comments table (not yet wired) (80cb4d4)
  • db: Add milestone, sync timestamps, and toggle columns (964601e)
  • db: Extend report_event_kind enum for assignees/comments/milestone (fcc4a8b)
  • identities: Signed oauth state helper for link flow (e416b4d)
  • identities: Resolver + upsert + unlink helpers (c5796b2)
  • identities: GET /api/me/identities (3d1211b)
  • identities: POST start endpoint generates signed oauth url (dddb5f9)
  • identities: Callback exchanges code and upserts identity (2d1527e)
  • identities: DELETE endpoint unlinks the identity (855bcc5)
  • identities: Backfill user_identities from better-auth account rows (c511746)
  • identities: /settings/identities page with connect/disconnect (c52520f)
  • db: Report_assignees schema + backfill migration (unapplied) (44299e0)
  • shared: ReportSummaryDTO.assignees (array); TriagePatchInput.assigneeIds (572ae66)
  • github-cache: Generic per-repo cache with TTL + SWR + single-flight (4ad1071)
  • github-adapter: List labels, assignees, milestones (367f0aa)
  • api: GET repo labels for a project (2e615b4)
  • api: GET assignable users with linkedUser resolution (fb19d2c)
  • api: GET repo milestones (091d610)
  • webhook: Invalidate picker caches on label/milestone/member events (69cfba2)
  • ui: Composable exposing github integration state per project (fbc29c3)
  • shared: Add milestone + githubAssigneeLogins to reports DTOs (4c64078)
  • triage: PATCH + read endpoints support milestone + github-only assignees (a278a30)
  • ui: Labels picker backed by repo label set (9374bcc)
  • ui: Assignees picker — dashboard-linked and github-only in one list (52269e7)
  • ui: Milestone picker (db4f968)
  • triage: Wire live pickers into drawer for linked projects (56848b0)
  • github-adapter: Issue-write helpers (title, milestone, assignees, state) (0e3f571)
  • github-diff: Signature + assignee-diff helpers for write-locks (09da9bc)
  • write-locks: Record/consume/cleanup helpers (c94dd5d)
  • tasks: Daily cleanup of expired github_write_locks (57190e1)
  • reconcile: Diff + push title, labels, state, assignees, milestone with write-locks (91e4768)
  • triage: Enqueue github sync on qualifying PATCH when push_on_edit=true (a673712)
  • webhook: Assigned/milestoned/edited branches + write-lock echo skip (9cfddd6)
  • integrations: PushOnEdit UI toggle for GitHub integration (dfd32b2)
  • integration-api: Expose autoCreateOnIntake toggle ([1574a7d](...
Read more

📱 Expo v0.2.0 (@reprojs/expo)

28 Apr 04:18

Choose a tag to compare

📱 Repro Expo SDK — @reprojs/expo@0.2.0 on https://www.npmjs.com/package/@reprojs/expo/v/0.2.0

compare changes

🚀 Enhancements

  • ✨ Add two way sync for github issue labels (89d3d9e)
  • webhook: Add size cap helper for github webhooks (8886440)
  • db: Add github_webhook_deliveries table for replay protection (f210471)
  • webhook: Add delivery dedupe for replay protection (f91987b)
  • webhook: Check installation id against known integrations (f1ad47e)
  • webhook: Enforce size cap, replay dedupe, installation allowlist (3865559)
  • db: Add user_identities table (github provider) (63cd11d)
  • db: Add github_write_locks table for loop avoidance (e16f5c5)
  • db: Add report_comments table (not yet wired) (80cb4d4)
  • db: Add milestone, sync timestamps, and toggle columns (964601e)
  • db: Extend report_event_kind enum for assignees/comments/milestone (fcc4a8b)
  • identities: Signed oauth state helper for link flow (e416b4d)
  • identities: Resolver + upsert + unlink helpers (c5796b2)
  • identities: GET /api/me/identities (3d1211b)
  • identities: POST start endpoint generates signed oauth url (dddb5f9)
  • identities: Callback exchanges code and upserts identity (2d1527e)
  • identities: DELETE endpoint unlinks the identity (855bcc5)
  • identities: Backfill user_identities from better-auth account rows (c511746)
  • identities: /settings/identities page with connect/disconnect (c52520f)
  • db: Report_assignees schema + backfill migration (unapplied) (44299e0)
  • shared: ReportSummaryDTO.assignees (array); TriagePatchInput.assigneeIds (572ae66)
  • github-cache: Generic per-repo cache with TTL + SWR + single-flight (4ad1071)
  • github-adapter: List labels, assignees, milestones (367f0aa)
  • api: GET repo labels for a project (2e615b4)
  • api: GET assignable users with linkedUser resolution (fb19d2c)
  • api: GET repo milestones (091d610)
  • webhook: Invalidate picker caches on label/milestone/member events (69cfba2)
  • ui: Composable exposing github integration state per project (fbc29c3)
  • shared: Add milestone + githubAssigneeLogins to reports DTOs (4c64078)
  • triage: PATCH + read endpoints support milestone + github-only assignees (a278a30)
  • ui: Labels picker backed by repo label set (9374bcc)
  • ui: Assignees picker — dashboard-linked and github-only in one list (52269e7)
  • ui: Milestone picker (db4f968)
  • triage: Wire live pickers into drawer for linked projects (56848b0)
  • github-adapter: Issue-write helpers (title, milestone, assignees, state) (0e3f571)
  • github-diff: Signature + assignee-diff helpers for write-locks (09da9bc)
  • write-locks: Record/consume/cleanup helpers (c94dd5d)
  • tasks: Daily cleanup of expired github_write_locks (57190e1)
  • reconcile: Diff + push title, labels, state, assignees, milestone with write-locks (91e4768)
  • triage: Enqueue github sync on qualifying PATCH when push_on_edit=true (a673712)
  • webhook: Assigned/milestoned/edited branches + write-lock echo skip (9cfddd6)
  • integrations: PushOnEdit UI toggle for GitHub integration (dfd32b2)
  • integration-api: Expose autoCreateOnIntake toggle (1574a7d)
  • integration-ui: AutoCreateOnIntake toggle (51fc8b7)
  • intake: Auto-create github issue on new report when toggle is on (30b7674)
  • github-adapter: Issue-comment wrappers (create/update/delete/list) (f395f3d)
  • comments: Bot-footer serialize/strip/detect helpers (9364473)
  • github-diff: SignCommentUpsert + signCommentDelete (e664a1d)
  • sync-jobs: Carry comment-sync payloads (021a0f7)
  • api: GET/POST/PATCH/DELETE report comment endpoints (76e6fb1)
  • shared: Comment DTOs (2485a18)
  • reconcile: Handle comment_upsert and comment_delete job kinds + backfill on first link (7514d3c)
  • webhook: Issue_comment branches with write-lock echo skip (2ce422e)
  • dashboard: Add marked dependency and use-markdown composable (aa39cf9)
  • dashboard: Add Comments tab to report detail page (1b8a7a2)
  • dashboard: Live report stream via SSE with memory-safe lifecycle (92e6a2f)
  • security: XSS-safe markdown rendering with DOMPurify (d43df70)
  • dashboard: Render reporter description in overview tab (4f621a3)
  • sync: In-process trigger + shared outbox runner (4b59420)
  • github: Create custom labels in linked repo from the picker (18ad810)
  • sdk-utils: Add canonical theme tokens shared by web and expo SDKs (989d8e3)
  • sdk-utils: Add Attachment shape and validateAttachments helper (a6c8159)
  • ui: Add themeToCssVars helper that emits flame/mist tokens as CSS vars (1a2e692)
  • ui: Inject flame/mist CSS vars into shadow root at mount (91a883b)
  • ui: Add PrimaryButton, SecondaryButton, FieldLabel, StepIndicator, WizardHeader (61404b5)
  • ui: Add StepDetails (replaces step-describe in 3-step wizard) (1077c55)
  • ui: Add StepReview with 'Included in this report' summary (da15040)
  • ui: Replace 2-step wizard with annotate → details → review flow (25c916f)
  • db: Add report_attachments.filename and user-file kind (9fd59b1)
  • env: Add user-file intake size budgets (01c0f9e)
  • server: Add sanitizeFilename + rollbackPuts helpers (f4bc566)
  • intake: Accept attachment[N] parts as user-file attachments (bceae0b)
  • ui: Add AttachmentList with hybrid thumbnail + chip rendering (b8070d6)
  • sdk-web: Add user attachments end-to-end (46af0bb)
  • shared: Add user-file kind and filename field to AttachmentDTO (dd715e5)
  • dashboard: Include user-file filename in report detail response (4242d52)
  • dashboard: Add AttachmentsTab for user-file attachments (f046de2)
  • dashboard: Expose user-file attachments tab in report ...
Read more