Uh oh!
There was an error while loading. Please reload this page.
Create independent server app for Vercel deployment - #1238
Merged
Conversation
- Create apps/server package with all necessary files - Add package.json with ObjectStack dependencies - Create objectstack.config.ts with plugin configuration - Add server/index.ts entrypoint with Hono adapter - Create API handler (api/[[...route]].js) for Vercel - Add build scripts (build-vercel.sh, bundle-api.mjs) - Configure Vercel deployment (vercel.json) - Add environment config (.env.example) - Create .gitignore and .vercelignore - Add tsconfig.json for TypeScript compilation - Write comprehensive README.md - Write detailed DEPLOYMENT.md guide Agent-Logs-Url: https://github.com/objectstack-ai/objectui/sessions/1401bb2d-d094-4280-a66d-bee5388fc83a Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
- Add @types/node to tsconfig types - Remove rootDir to allow importing from parent dirs - Fix datasources config format (add required config field) - Add @ts-ignore for missing type exports in runtime packages Agent-Logs-Url: https://github.com/objectstack-ai/objectui/sessions/1401bb2d-d094-4280-a66d-bee5388fc83a Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
Add IMPLEMENTATION.md documenting the complete server app structure, architecture, deployment process, and key decisions Agent-Logs-Url: https://github.com/objectstack-ai/objectui/sessions/1401bb2d-d094-4280-a66d-bee5388fc83a Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
The latest updates on your projects. Learn more about Vercel for GitHub.
|
xuyushun441-sys
marked this pull request as ready for review
April 14, 2026 14:04
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
Uh oh!
There was an error while loading. Please reload this page.
os-support-ai pushed a commit
that referenced
this pull request
Aug 25, 2026
`AI_QUOTA_CODES` / `AiQuotaCode` held only the three lowercase legacy literals while cloud PR #1238 landed the SCREAMING_SNAKE ledger vocabulary, so `asAiQuotaCode`'s exact `Set.has` missed every converged producer and a quota-exhausted user fell through to the generic "Response failed" banner instead of the upgrade / top-up CTA. - Add `AI_ALLOWANCE_EXHAUSTED`, `AI_DESIGN_QUOTA_EXHAUSTED` and `AI_DATA_CHAT_TRIAL_EXHAUSTED`, KEEPING the lowercase trio for transition-period producers. - Read the companion fields from the declared envelope's `error.details` (the position cloud PR #1238 shipped) with the legacy top-level read as the fallback limb, matching the total order the code lookup already uses. - Add `resetsTonight`, set only when a producer sends an actual boolean. - Widen the dialect matrix from three to four and pin that the per-turn cap's generic `QUOTA_EXCEEDED` keeps its rate-limit path. No existing assertion in `tool-display.test.ts` was weakened or removed.
akarma-synetal pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Sep 1, 2026
…ck-ai#6383) `AI_QUOTA_CODES` / `AiQuotaCode` held only the three lowercase legacy literals while cloud PR objectstack-ai#1238 landed the SCREAMING_SNAKE ledger vocabulary, so `asAiQuotaCode`'s exact `Set.has` missed every converged producer and a quota-exhausted user fell through to the generic "Response failed" banner instead of the upgrade / top-up CTA. - Add `AI_ALLOWANCE_EXHAUSTED`, `AI_DESIGN_QUOTA_EXHAUSTED` and `AI_DATA_CHAT_TRIAL_EXHAUSTED`, KEEPING the lowercase trio for transition-period producers. - Read the companion fields from the declared envelope's `error.details` (the position cloud PR objectstack-ai#1238 shipped) with the legacy top-level read as the fallback limb, matching the total order the code lookup already uses. - Add `resetsTonight`, set only when a producer sends an actual boolean. - Widen the dialect matrix from three to four and pin that the per-turn cap's generic `QUOTA_EXCEEDED` keeps its rate-limit path. No existing assertion in `tool-display.test.ts` was weakened or removed. Co-authored-by: Claude <noreply@anthropic.com>
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 freeto 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.
Separates backend API server from console frontend following the
objectstack-ai/framework/apps/serverpattern. Enables standalone Vercel deployment of ObjectStack server with Console UI served as static files.Architecture
Implementation
Server Runtime:
@objectstack/honogetRequestListener()for Vercel compatibilityPlugin Loading Order:
Build Process:
VITE_RUNTIME_MODE=server(connects to API, not MSW)server/index.tsbundled toapi/_handler.js(all deps inlined)public/for static servingDeployment:
/api/*→ Serverless function (ObjectStack API)/*→ Static files (Console UI from CDN)AUTH_SECRET(required, 32+ chars)Files
package.json- ObjectStack dependencies + build scriptsvercel.json- Deployment config with build env varsREADME.md/DEPLOYMENT.md- Usage and deployment guides.env.example/.gitignore/.vercelignoretsconfig.json- Node.js types, no rootDir constraintUsage
cd apps/server vercel env add AUTH_SECRET production vercel --prodEndpoints:
https://your-app.vercel.app/https://your-app.vercel.app/api/v1/discovery