Release control center
#1141Muneerali199/Draftdeckai

fix: resolve 4 bugs in Draftdeckai

saurabhhhcodesfix/Draftdeckai-35030main1 commits18d agoopen on GitHub

15

risk score

Release decision

Review required

Review required. Trigger a Netlify preview build, re-analyze, then approve for production.

Risk score 15/100 — acceptable but non-trivial; route through a preview first.

Change touches user-facing flows — validate in a preview deployment before production.

A Netlify preview deployment will be triggered and a release report written to Notion.

Incident memory

How this change scores against your production history — 0 past incident(s) on the touched surface.

No incident history: Touched modules have no past incidents.

How Rakshak understands this change

AI reasoning layer · confidence MEDIUM · model Qwen/Qwen3-Next-80B-A3B-Thinking

This PR addresses two common JavaScript issues: adding proper rejection handling for Promise.all to prevent silent crashes and ensuring parseInt uses radix 10 to avoid misparsing numeric strings. These changes affect API routes and frontend components, with potential risks if error handling in APIs is incomplete or if numeric parsing assumptions were incorrect.

apicomponents

Failure hypotheses

In app/api/proxy-image/route.ts, the added Promise.all rejection handler may fail to return an error response, causing API requests to hang and users to experience timeouts when fetching proxy images.

In app/api/workspaces/[id]/activity/route.ts, the rejection handler might suppress error details, leading to undetected failures in workspace activity tracking and affecting user session history.

In components/credits-display.tsx, using radix 10 for parseInt could misinterpret hexadecimal strings (e.g., '0x1F' becomes 0), resulting in incorrect credit balances displayed to users.

In components/dashboard/history-dashboard.tsx, the radix fix might cause historical data to display incorrect numeric values if inputs were previously parsed as octal/hex, affecting user analytics.

Release risk score

Weighted from 9 evidence categories

15/ 100 release risk
criticalguardedclear

Blast radius

What this change can reach

Modules affected

2

api, components

Services reached

2

api, components

Estimated users exposed

active

active sessions

Changed files

4

8 lines of diff

Blast radius map

Severity-weighted dependency graph · active sessions

lowmediumhighcritical
apicomponentschange4 filesapilow50%componentslow50%2 modules · 2 services · reaches active sessions

Risk factors

Every point of the score is traceable to an observation

·

Traceability · No linked issue

low

No Jira issue is referenced from the PR description.

Scope · Focused change set

low

4 files changed — contained diff.

Incident history · No incident history

low

Touched modules have no past incidents.

Blast radius · Multi-service impact

medium

Reaches 2 services.

Test coverage · No tests in change

high

No test files added or updated for this change.

Affected modules

Coverage, incident history and change load per module

ModuleServiceFilesΔ linesCoverageIncidentsSeverity

api

api

api24nonelow

components

components

components24nonelow

Evidence chain

How Rakshak AI reached its decision

  1. SWYTCHCODE_VERIFYSwytchcode CLI queried 3 open PR(s)

    `swytchcode exec github.pull.get` returned 3 recent open PRs for Muneerali199/Draftdeckai

    Aug 9, 07:59 AM
  2. GITHUB_INGESTPR #1141 ingested

    4 files, 8 lines changed by saurabhhhcodes → main

    Aug 9, 07:59 AM
  3. JIRA_LINKNo linked issues

    PR description references no Jira issue — traceability is weak.

    Aug 9, 07:59 AM
  4. NOTION_KNOWLEDGEProject knowledge loaded

    0 architecture notes · 0 incident records · 11 prior release reports consulted.

    Aug 9, 07:59 AM
  5. IMPACT_MAPBlast radius mapped

    api (low) · components (low) — reaches active sessions.

    Aug 9, 07:59 AM
  6. AI_REASONAI layer: how Rakshak understands the change

    This PR addresses two common JavaScript issues: adding proper rejection handling for Promise.all to prevent silent crashes and ensuring parseInt uses radix 10 to avoid misparsing numeric strings. These changes affect API routes and frontend components, with potential risks if error handling in APIs is incomplete or if numeric parsing assumptions were incorrect. • The PR addresses two common JavaScript pitfalls: unhandled Promise rejections and missing radix in parseInt. • Unhandled rejections in Promise.all can cause silent crashes, which the PR fixes by adding explicit catch blocks. • parseInt without radix may interpret strings in unintended bases (e.g., '08' as octal), leading to incorrect values; adding radix 10 ensures decimal parsing. • Changes are confined to specific API routes and components with low blast radius, and no prior incidents or dependency issues were detected.

    Aug 9, 08:00 AM
  7. RISK_SCORERisk scored 15/100 — low

    Focused change set · 4 files changed — contained diff. — Multi-service impact · Reaches 2 services. — No incident history · Touched modules have no past incidents. — No tests in change · No test files added or updated for this change.

    Aug 9, 08:00 AM
  8. DECISIONDecision: REVIEW

    Risk score 15/100 — acceptable but non-trivial; route through a preview first. Change touches user-facing flows — validate in a preview deployment before production. A Netlify preview deployment will be triggered and a release report written to Notion.

    Aug 9, 08:00 AM

Change surface

4 files in the diff

app/api/proxy-image/route.ts+1-1
app/api/workspaces/[id]/activity/route.ts+1-1
components/credits-display.tsx+2-0
components/dashboard/history-dashboard.tsx+2-0

Failure points

Where this change is most likely to break

No likely failure points identified.

Dependency security

CVE lookup on changed dependencies via osv.dev

No known advisories on changed dependencies

Missing coverage

Modules below the 60% test bar

No coverage gaps flagged

Agent trace

Swytchcode orchestration run

rakshak pipeline · run #9

01okgithub.github.fetch_pr

02okjira.jira.search

03oknotion.notion.knowledge

04okswytchcode.blast-radius

05okswytchcode.osv.scan

06okswytchcode.llm.reason

07okswytchcode.risk-engine

08okswytchcode.decision-engine

decided review

Analyzed Aug 9, 07:59 AM · updated 13d ago