Skip to content

[WIP] Add PromptOS Desktop AI Agent core functions#1

Merged
SMSDAO merged 6 commits intomainfrom
copilot/create-promptos-desktop-ai-agent
May 6, 2026
Merged

[WIP] Add PromptOS Desktop AI Agent core functions#1
SMSDAO merged 6 commits intomainfrom
copilot/create-promptos-desktop-ai-agent

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 5, 2026

  • Set up monorepo structure with Turborepo/pnpm workspaces
  • All packages pass tsc --noEmit type-check ✅
  • Web app builds successfully with 12 routes ✅
  • Fix tailwind theme.colors replacing defaults → moved to theme.extend.colors
  • Fix Firestore collection path in usage summary route (odd segments) → usage/{userId}_{period}
  • Fix invoice.payment_failed using customer_email → use subscription_details.metadata.userId
  • Fail fast with clear error when JWT_SECRET is not set
  • Honor targetModel in optimizePrompt() instead of always using GPT_4O_MINI
  • Sync AICommandBar model state via useEffect when selectedModel prop changes
  • Fix getOrCreateSandbox — add registerPluginModule() API; sandbox throws clear error when module not loaded
  • Fix billing checkout — remove successUrl/cancelUrl from client schema; URLs always server-generated
  • Fix /api/ai/optimize to use withOptionalAuth (allows unauthenticated access with FREE limits)
  • Mobile OptimizerScreen — attach Bearer token from AsyncStorage when available
  • Security: upgrade next 14.2.4 → 14.2.35, electron ^28.3.3 → ^39.8.1
  • Fix @promptos/middleware Next.js peer dep to ^14.2.35 to resolve NextRequest type mismatch
Original prompt

💰 APP IDEA (HIGH MONETIZATION POTENTIAL)

🧠 “PromptOS Desktop AI Agent (Windows + Android)”

A local-first AI productivity OS layer that sits on top of Windows (and Android companion app), doing:

Core Functions
• 🧾 Smart prompt optimizer (ChatGPT / Claude / Gemini ready)
• 📁 File-aware AI (drag PDF / code / docs → AI understands context)
• ⚡ One-click “task automation prompts”
• 🧠 Prompt history + replay + versioning
• 🔌 Plugin marketplace (paid extensions)
• 💸 Affiliate AI tools store (OpenAI, APIs, SaaS referrals)
• 🔐 Local encrypted vault for prompts + API keys
• 🌐 Web sync + mobile companion app

💰 Monetization Model
• Free tier: limited AI prompts/day
• Pro: $9–19/month (unlimited + sync + plugins)
• Enterprise: $49/month (team + API + automation)
• Plugin marketplace cut (20–30%)
• Affiliate revenue from AI tools onboarding

🚀 Why this makes money

Because it sits between:
• AI usage explosion (ChatGPT, Copilot, Gimini etc.)
• Productivity tools (Notion, Obsidian)
• Developer workflows

You’re not selling “AI chat” — you’re selling AI workflow OS layer

🧠 MASTER PROMPT (AI STUDIO / CODEX / COPILOT READY)

🚨 MASTER PROMPT — PROMPTOS DESKTOP AI SYSTEM

You are an expert senior full-stack + desktop + mobile + AI systems engineer.

Your task is to generate a production-ready cross-platform application called:

“PromptOS – AI Workflow Operating System”

🎯 TARGET PLATFORMS
• Windows Desktop (Electron + Node.js)
• Android (React Native Expo)
• Web Dashboard (Next.js 14 PWA)
• Backend API (Next.js API routes + Node.js services)

🧠 CORE FEATURES

  1. AI Prompt Engine
    • Prompt optimizer using OpenAI API
    • Multi-model support (OpenAI / Claude / Gemini abstraction layer)
    • Prompt version history + diff viewer
    • Prompt templates library

  2. File Intelligence System
    • Upload PDF, TXT, MD, code files
    • AI contextual understanding layer
    • Embedding-based search (vector DB like Pinecone or local FAISS)

  3. Automation Engine
    • Convert prompts → executable workflows
    • “Run task” button executes API chains
    • Scheduled AI tasks (cron-like system)

  4. Plugin System
    • Installable JS/TS plugins
    • Marketplace-ready architecture
    • Paid plugin gating (license validation)

  5. Wallet + Payments
    • WalletConnect integration
    • Stripe subscription system
    • NFT-based premium access gating

  6. Sync System
    • Firebase Realtime DB for sync
    • Offline-first local cache

🧱 TECH STACK
• Next.js 14 (App Router)
• TypeScript everywhere
• TailwindCSS + shadcn/ui
• Firebase (auth + realtime DB)
• Electron (Windows desktop wrapper)
• React Native Expo (mobile)
• OpenAI API integration layer
• Zod validation everywhere
• Prisma (optional local DB layer)

🔐 SECURITY REQUIREMENTS
• Encrypted API key storage (AES-256 local)
• JWT auth system
• Role-based access control
• Rate limiting per user tier
• Secure plugin sandbox execution

💸 MONETIZATION MODULE
• Stripe subscriptions (Pro / Enterprise)
• NFT gating (ERC-721 access tokens)
• Usage-based API metering system

📁 OUTPUT REQUIREMENT

Generate:
• Full monorepo structure
• package.json for all apps
• backend API routes
• Electron desktop app
• React Native mobile app
• Web dashboard
• Firebase config
• environment templates (.env.example)
• plugin system architecture
• payment integration layer
• deployment instructions

⚡ IMPORTANT
• Must be production-grade
• No pseudo-code
• No placeholders except API keys
• Fully runnable after npm install
• Clean architecture with modular services
• Scalable design (multi-tenant ready)

🧠 FINAL GOAL

A complete AI-powered desktop operating system that users can install and immediately start using to:
• optimize prompts
• run AI workflows
• manage productivity
• monetize plugins

🔥 upgrade this into:
• ⚡  full GitHub repo generator (.ps1 mega script like you like)
• 💰  Stripe + NFT smart contract version
• 🧠  “autonomous AI agent version” (runs tasks by itself)
• 📦  production deployment pipeline (CI/CD + Docker + Vercel + Electron build pipeline) If PR1 is your core app foundation (PromptOptimizer / PromptOS / AI platform shell), then PR2 should not jump into “more features”. It should harden the system into something monetizable, secure, and scalable.

Think in terms of contracts = trust + money flow + access control + extensibility layer.

🧱 PR2 STRATEGY (WHAT YOU SHOULD BUILD NEXT)

🎯 Goal of PR2

Turn your app from:

“AI tool”

into:

“paid, controlled, extensible AI platform”

🔥 PR2 — CORE CONTRACT LAYERS

  1. 💸 Billing & Subscription Contract Layer (CRITICAL)

This is your first real “money gate”.

Build:
• Stripe subscription service
• Tier system:
• Free (limited prompts)
• Pro (unlimited + sync)
• Enterprise (API + team)
• Usage metering system (token / request tracking)

Why PR2 needs this:

Without billing contracts, you don’t have a product — just a demo.

  1. 🔐 Access Control Contract (RBAC + Tier Locking)

Th...

Copilot AI and others added 4 commits May 5, 2026 13:31
- Root: pnpm workspaces, Turborepo, tsconfig.base, .gitignore, .env.example
- packages/contracts: billing, access, usage, ai, plugin, sync, web3 contracts (Zod-validated)
- packages/services: Stripe, Firebase, AI router (OpenAI/Claude/Gemini), plugin engine
- packages/middleware: JWT auth, billing tier, RBAC, usage/rate-limit middleware
- packages/ui: GlassCard, NeonButton, AICommandBar, PromptCard, BillingDashboard, PluginTile (NEON GLASS OS theme)
- packages/config: Zod-validated env config
- apps/web: Next.js 14 App Router, API routes (billing, ai, plugins, usage, stripe webhook), dashboard + optimizer pages
- apps/desktop: Electron 28 main process + preload, electron-builder config
- apps/mobile: React Native Expo 50, bottom tab nav, optimizer + dashboard screens
- Docker: Dockerfile.web, docker-compose.yml
- CI/CD: GitHub Actions ci.yml (lint + type-check + build), deploy-web.yml (Vercel)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
- Add explicit permissions: read to all GitHub Actions jobs
- Add /api/health route to fix docker-compose health check
- Implement Redis singleton to avoid repeated connection creation
- Use lazy initialization for Stripe client with fail-fast env validation
- Validate STRIPE_WEBHOOK_SECRET before use in webhook handler

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
Copilot finished work on behalf of SMSDAO May 5, 2026 14:02
Copilot AI requested a review from SMSDAO May 5, 2026 14:02
Copy link
Copy Markdown
Contributor

@SMSDAO SMSDAO left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ APPROVAL — PromptOS PR #1 (Files Review)

Overall, this PR establishes a solid foundation for the PromptOS system. Structure, intent, and direction are aligned with a scalable prompt-engineering platform (enhancement, evaluation, orchestration). 

That said, approval is conditional on follow-up hardening tasks below to ensure production readiness.

🔍 Key Strengths
• Clear modular separation (frontend / backend / logic layers)
• Good initial abstraction for prompt optimization workflows
• Early signs of extensibility (multi-model / scoring pipeline ready)
• Clean baseline for future CI/CD + scaling

⚠️ Required Follow-ups (Post-Merge or Immediate Patch PR)

  1. Security & Secrets
    • Move all API keys to .env (no inline usage)
    • Add .env.example
    • Validate:
    • OpenAI keys
    • Firebase config
    • WalletConnect / Web3 endpoints

  1. Type Safety & Stability
    • Enforce strict mode:

"strict": true

•	Remove any any types → replace with proper interfaces
•	Add runtime validation (zod / yup) for API payloads

  1. API Hardening (Next.js routes)
    • Add:
    • Rate limiting (important for prompt endpoints)
    • Input sanitization
    • Error boundaries (no raw stack leaks)

  1. Performance
    • Debounce prompt optimization calls
    • Cache results (Redis / in-memory fallback)
    • Avoid unnecessary re-renders in UI (memoization)

  1. Testing (Currently Missing Critical Layer)
    Must include:
    • Unit tests (core prompt optimizer logic)
    • API tests
    • Basic e2e (Playwright or Cypress)

Target:

All CI checks → GREEN before next release

  1. CI/CD Workflow
    Add GitHub Actions:
    • Install + build
    • Lint
    • Test
    • Type-check

Fail PR if:
• Types fail
• Tests fail
• Build fails

  1. Production Readiness Gaps
    • Logging layer (Winston / Pino)
    • Error tracking (Sentry recommended)
    • Feature flags for experimental prompt tuning

  1. UI/UX (Future PR)
    • Needs stronger visual identity (cyber / AI-native feel)
    • Add:
    • Loading states
    • Skeletons
    • Prompt history panel
    • Diff view (before/after optimization)

🚀 Merge Decision

APPROVED ✅ (with required follow-up PR for hardening)

This is a strong foundational PR.
Proceed with merge → then immediately open PR #2: Production Hardening Sweep.

🧠 Suggested Next PR Title

PR #2 — Production Hardening (Security, Types, CI, Tests, Performance)

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR establishes the core PromptOS monorepo foundation and adds initial “agent platform” building blocks across desktop (Electron), web (Next.js), mobile (Expo), and shared packages (contracts/services/middleware/ui/config).

Changes:

  • Adds monorepo + build tooling (pnpm workspaces, Turborepo pipeline, shared tsconfig), plus CI and web deployment workflow.
  • Introduces shared packages for typed contracts (Zod), backend services (AI router, Stripe, Firebase, plugin engine), API middleware (auth/RBAC/billing/usage), and a reusable neon/glass UI kit.
  • Adds/updates app shells: Next.js web dashboard + API routes, Electron desktop wrapper with IPC/update hooks, and Expo mobile tab navigation + screens.

Reviewed changes

Copilot reviewed 79 out of 82 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
turbo.json Adds Turborepo task pipeline configuration.
tsconfig.base.json Introduces strict shared TypeScript base config.
pnpm-workspace.yaml Defines workspace package globs.
package.json Root scripts/devDeps for turbo + pnpm overrides.
Dockerfile.web Multi-stage Docker build for the web app.
docker-compose.yml Compose for web + redis service.
.gitignore Adds ignores for monorepo build/artifacts/env files.
.env.example Root environment template.
.github/workflows/ci.yml CI workflow for type-check/lint/build.
.github/workflows/deploy-web.yml Vercel deployment workflow.
apps/web/package.json Web app deps/scripts wiring shared packages.
apps/web/tsconfig.json Web TS config for Next.js.
apps/web/next.config.js Next config incl. transpilePackages + externals.
apps/web/postcss.config.js PostCSS config for Tailwind.
apps/web/next-env.d.ts Next.js TS environment definitions.
apps/web/.env.example Web env template (mirrors root).
apps/web/tailwind.config.ts Web Tailwind config extending UI base.
apps/web/src/app/layout.tsx Root layout, metadata, fonts, base styling.
apps/web/src/app/globals.css Global Tailwind layers + neon/glass CSS utilities.
apps/web/src/app/page.tsx Landing page UI.
apps/web/src/app/dashboard/page.tsx Dashboard page shell UI.
apps/web/src/app/optimizer/page.tsx Client optimizer UI calling optimize API.
apps/web/src/app/api/health/route.ts Health endpoint.
apps/web/src/app/api/ai/complete/route.ts AI completion endpoint (rate-limited/auth).
apps/web/src/app/api/ai/optimize/route.ts Prompt optimization endpoint (rate-limited/auth).
apps/web/src/app/api/billing/checkout/route.ts Checkout session endpoint (auth).
apps/web/src/app/api/billing/portal/route.ts Billing portal session endpoint (auth).
apps/web/src/app/api/billing/cancel/route.ts Subscription cancel endpoint (auth).
apps/web/src/app/api/plugins/install/route.ts Plugin install endpoint (auth).
apps/web/src/app/api/plugins/uninstall/route.ts Plugin uninstall endpoint (auth).
apps/web/src/app/api/usage/summary/route.ts Usage summary endpoint (auth).
apps/web/src/app/api/webhooks/stripe/route.ts Stripe webhook handler updating Firebase claims/docs.
apps/mobile/package.json Expo app deps/scripts.
apps/mobile/tsconfig.json Mobile TS config.
apps/mobile/app.json Expo app configuration.
apps/mobile/src/navigation/TabNavigator.tsx Bottom tab navigation.
apps/mobile/src/screens/DashboardScreen.tsx Dashboard screen shell.
apps/mobile/src/screens/OptimizerScreen.tsx Mobile optimizer screen calling optimize API.
apps/mobile/src/screens/PluginsScreen.tsx Plugins screen placeholder.
apps/mobile/src/screens/SettingsScreen.tsx Settings screen shell.
apps/desktop/package.json Electron app config + builder scripts.
apps/desktop/tsconfig.json Desktop TS config.
apps/desktop/src/main.ts Electron main process window/menu/updater wiring.
apps/desktop/src/preload.ts IPC bridge exposed to renderer.
packages/contracts/package.json Contracts package build/export config.
packages/contracts/tsconfig.json Contracts TS config.
packages/contracts/src/index.ts Barrel exports for all contracts.
packages/contracts/src/billing.contract.ts Billing tiers/limits/flags + schemas.
packages/contracts/src/access.contract.ts Roles/permissions/JWT/user schemas.
packages/contracts/src/usage.contract.ts Usage metric/event schemas + token cost calc.
packages/contracts/src/ai.contract.ts AI request/response/router config contracts.
packages/contracts/src/plugin.contract.ts Plugin manifest/execution contracts.
packages/contracts/src/sync.contract.ts Sync/offline/conflict contracts.
packages/contracts/src/web3.contract.ts Wallet/NFT gating contracts.
packages/services/package.json Services package build/export deps.
packages/services/tsconfig.json Services TS config.
packages/services/src/index.ts Barrel exports for services.
packages/services/src/stripe.service.ts Stripe client + checkout/portal/webhook parsing helpers.
packages/services/src/firebase.service.ts Firebase Admin wrappers for Firestore/RTDB/Auth.
packages/services/src/ai.router.service.ts Multi-provider AI router + prompt optimizer helper.
packages/services/src/plugin.engine.ts In-memory plugin engine + hook execution scaffolding.
packages/middleware/package.json Middleware package deps/scripts.
packages/middleware/tsconfig.json Middleware TS config.
packages/middleware/src/index.ts Barrel exports for middleware.
packages/middleware/src/auth.middleware.ts JWT auth helpers + route wrapper.
packages/middleware/src/billing.middleware.ts Tier gating + feature gating helpers.
packages/middleware/src/rbac.middleware.ts Permission-based route wrappers.
packages/middleware/src/usage.middleware.ts Rate limiting + usage tracking wrappers.
packages/ui/package.json UI package build/export deps.
packages/ui/tsconfig.json UI TS config for React components.
packages/ui/tailwind.config.ts Shared Tailwind theme/config for UI package.
packages/ui/src/index.ts UI barrel exports.
packages/ui/src/components/GlassCard.tsx Glass card component.
packages/ui/src/components/NeonButton.tsx Neon button component.
packages/ui/src/components/AICommandBar.tsx Command bar component with model selector.
packages/ui/src/components/PromptCard.tsx Prompt display card component.
packages/ui/src/components/BillingDashboard.tsx Billing/usage UI component.
packages/ui/src/components/PluginTile.tsx Plugin marketplace tile component.
packages/config/package.json Config package build/export deps.
packages/config/tsconfig.json Config TS config.
packages/config/src/index.ts Zod env validation + public env mapping.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/ui/tailwind.config.ts Outdated
Comment on lines +63 to +70
theme: {
extend: cyberpunkTheme.extend,
colors: {
...cyberpunkTheme.colors,
white: "#ffffff",
black: "#000000",
transparent: "transparent",
current: "currentColor",
Comment on lines +15 to +20
const periodKey = getPeriodKey();
const usageData = await firebaseService.getDocument<{
tokensUsed?: number;
promptsUsed?: number;
}>(`usage/${user.sub}`, periodKey);

Comment on lines +118 to +125
case "invoice.payment_failed": {
const invoice = event.data.object as Stripe.Invoice;
return {
action: "payment_failed",
userId: invoice.customer_email ?? "",
subscriptionId: invoice.subscription as string,
};
}
Comment on lines +6 to +13
const JWT_SECRET = process.env["JWT_SECRET"] ?? "";
const JWT_EXPIRES_IN = (process.env["JWT_EXPIRES_IN"] ?? "7d") as SignOptions["expiresIn"];

export function signToken(payload: Omit<JWTPayload, "iat" | "exp" | "jti">): string {
return jwt.sign({ ...payload, jti: uuidv4() }, JWT_SECRET, {
expiresIn: JWT_EXPIRES_IN,
algorithm: "HS256",
});
Comment on lines +185 to +205
async optimizePrompt(request: PromptOptimizationRequest): Promise<PromptOptimizationResponse> {
const systemPrompt = `You are an expert prompt engineer. Optimize the given prompt for ${request.optimizationGoal}.
Return a JSON object with: optimizedPrompt (string), improvements (string[]), scoreImprovement (number -100 to 100), tokensReduced (number).`;

const aiRequest: AIRequest = {
model: AIModel.GPT_4O_MINI,
messages: [
{
role: "user",
content: `Optimize this prompt:\n\n${request.originalPrompt}${request.context ? `\n\nContext: ${request.context}` : ""}`,
},
],
systemPrompt,
temperature: 0.3,
maxTokens: 1024,
topP: 1,
stream: false,
userId: request.userId,
requestId: uuidv4(),
};

Comment on lines +18 to +27
models = ["gpt-4o-mini", "gpt-4o", "claude-3-5-sonnet", "gemini-1.5-flash"],
selectedModel,
onModelChange,
loading = false,
disabled = false,
}: AICommandBarProps) {
const [value, setValue] = useState("");
const [focused, setFocused] = useState(false);
const [model, setModel] = useState(selectedModel ?? models[0] ?? "gpt-4o-mini");
const textareaRef = useRef<HTMLTextAreaElement>(null);
Comment on lines +161 to +167
private getOrCreateSandbox(installation: PluginInstallation): PluginSandbox {
const key = `${installation.userId}:${installation.pluginId}`;
let sandbox = this.sandboxes.get(key);
if (!sandbox) {
sandbox = new InProcessSandbox({});
this.sandboxes.set(key, sandbox);
}
Comment on lines +9 to +14
const body: unknown = await req.json();
const parsed = CreateCheckoutSessionSchema.safeParse(body);

if (!parsed.success) {
return NextResponse.json({ error: "Invalid request", issues: parsed.error.issues }, { status: 400 });
}
Comment on lines +21 to +25
const res = await fetch("/api/ai/optimize", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ prompt: prompt.trim() }),
});
Comment on lines +32 to +36
const res = await fetch(`${API_URL}/api/ai/optimize`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ prompt: prompt.trim() }),
});
@SMSDAO
Copy link
Copy Markdown
Contributor

SMSDAO commented May 6, 2026

@copilot apply changes based on the comments in this thread

- tailwind: move custom colors to theme.extend.colors to preserve Tailwind defaults (text-red-*, text-yellow-*, etc.)
- usage/summary: fix Firestore path to use flat 'usage/{userId}_{period}' (odd segments)
- stripe: use invoice.subscription_details.metadata.userId instead of customer_email in payment_failed handler
- auth: fail fast with clear error when JWT_SECRET is not set
- ai router: honor targetModel in optimizePrompt() instead of always using GPT_4O_MINI
- AICommandBar: sync internal model state via useEffect when selectedModel prop changes
- plugin engine: add registerPluginModule() API; getOrCreateSandbox throws clear error when module not loaded instead of silent no-op
- billing/checkout: remove successUrl/cancelUrl from client schema; URLs always server-generated
- ai/optimize route: switch to withOptionalAuth to allow unauthenticated access; pass targetModel through
- mobile OptimizerScreen: attach Bearer token from AsyncStorage when available
- security: upgrade next 14.2.4 -> 14.2.35, electron ^28.3.3 -> ^39.8.1
- fix: update @promptos/middleware next peer dep to ^14.2.35 to resolve NextRequest type mismatch"

Agent-Logs-Url: https://github.com/Algodons/PromptOS/sessions/95f215e6-a99f-4e13-80e8-6a4f3a9314dc

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented May 6, 2026

@copilot apply changes based on the comments in this thread

All review comments have been addressed in commit a01d022:

  • Tailwind colors — Moved custom colors from theme.colors to theme.extend.colors, so Tailwind's full default palette (red, yellow, etc.) is preserved.
  • Firestore path — Fixed usage/${user.sub} (even-segment path) to a flat "usage" collection with doc key ${user.sub}_${periodKey}.
  • invoice.payment_failed — Replaced invoice.customer_email (may be null, not an internal ID) with invoice.subscription_details?.metadata?.["userId"], matching the metadata we set on the subscription during checkout.
  • JWT_SECRET fail-fast — Added a requireJwtSecret() guard that throws a clear error at call time if the env var is missing, instead of silently using an empty string.
  • targetModel in optimizePrompt() — Now uses request.targetModel ?? this.config.primaryModel instead of always hardcoding GPT_4O_MINI.
  • AICommandBar controlled prop sync — Added a useEffect to update internal model state when the selectedModel prop changes.
  • Plugin sandbox — Added registerPluginModule(pluginId, module) to the PluginEngine. getOrCreateSandbox now throws a descriptive error if no module is registered, rather than silently succeeding with no-op hooks.
  • Billing checkout schema — Removed successUrl/cancelUrl from the client-facing schema; URLs are always built server-side from NEXT_PUBLIC_APP_URL.
  • /api/ai/optimize auth — Switched to withOptionalAuth, allowing unauthenticated access (FREE-tier limits apply). targetModel is also passed through from the request.
  • Mobile OptimizerScreen — Now attaches Authorization: ****** from AsyncStorage` when a token is available, so authenticated users get their proper tier limits.
  • Security — Upgraded next 14.2.4 → 14.2.35 and electron ^28.3.3 → ^39.8.1.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • fonts.googleapis.com
    • Triggering command: /usr/local/bin/node /usr/local/bin/node /home/REDACTED/work/PromptOS/PromptOS/node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1/node_modules/next/dist/compiled/jest-worker/processChild.js (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot finished work on behalf of SMSDAO May 6, 2026 05:03
Copilot AI requested a review from SMSDAO May 6, 2026 05:03
@SMSDAO SMSDAO merged commit 5da60d3 into main May 6, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants