@mindstudio-ai/remy 0.1.116 → 0.1.118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/headless.js CHANGED
@@ -2507,7 +2507,7 @@ var queryDatabaseTool = {
2507
2507
  };
2508
2508
 
2509
2509
  // src/subagents/common/analyzeImage.ts
2510
- var VISION_MODEL = "claude-4.5-sonnet";
2510
+ var VISION_MODEL = "gemini-3-flash";
2511
2511
  var VISION_MODEL_OVERRIDE = JSON.stringify({
2512
2512
  model: VISION_MODEL,
2513
2513
  config: { thinkingBudget: "off" }
package/dist/index.js CHANGED
@@ -2214,7 +2214,7 @@ var init_analyzeImage = __esm({
2214
2214
  "src/subagents/common/analyzeImage.ts"() {
2215
2215
  "use strict";
2216
2216
  init_runCli();
2217
- VISION_MODEL = "claude-4.5-sonnet";
2217
+ VISION_MODEL = "gemini-3-flash";
2218
2218
  VISION_MODEL_OVERRIDE = JSON.stringify({
2219
2219
  model: VISION_MODEL,
2220
2220
  config: { thinkingBudget: "off" }
@@ -18,6 +18,9 @@ These are things we already know about and have decided to accept:
18
18
 
19
19
  - Limited browser support for `oklch` gradients using `in <colorspace>` syntax — we accept the compatibility tradeoff for better color quality
20
20
  - Limited browser support for CSS scroll-driven animations (`animation-timeline: scroll()` / `view()`) - we accept this tradeoff
21
+ - Platform SDKs (these are the core of every MindStudio app):
22
+ - `@mindstudio-ai/interface` — frontend SDK. `createClient<T>()` gives typed RPC to backend methods (no raw fetch). `auth` handles auth state (`auth.currentUser`, `auth.onAuthStateChanged(cb)`, verification flows, logout). `platform.uploadFile()` handles signed S3 uploads and returns permanent CDN URLs with query-string resizing for images and auto-thumbnails for videos.
23
+ - `@mindstudio-ai/agent` — backend SDK. `db.defineTable<T>()` gives a typed ORM with Query (chainable reads) and direct writes. `auth` gives `auth.userId`, `auth.roles`, `auth.requireRole()`, `auth.hasRole()`. Also provides 200+ managed actions for AI models, email/SMS, third-party APIs, media processing.
21
24
  - Libraries we know are actively maintained, don't bother checking:
22
25
  - swr
23
26
  - motion (formerly framer-motion — import from `motion/react`, not `framer-motion`)
@@ -28,7 +31,7 @@ These are things we already know about and have decided to accept:
28
31
  - react-textarea-autosize
29
32
  - Preferences:
30
33
  - use [wouter](https://github.com/molefrog/wouter) for React routing instead of reaching for react-router
31
- - uploading user files should mostly always happen via @mindstudio-ai/interface's platform.uploadFile() - it does the whole signed S3 upload dance and returns a permanent CDN url, including query-string-resizable images, videos + auto-thumbnails, etc.
34
+ - uploading user files should always happen via `platform.uploadFile()` from `@mindstudio-ai/interface` not custom S3 code, not FormData to a method endpoint
32
35
  - for static prerendering of Vite + React sites, roll your own with a post-build `renderToString` script — do not use `vite-prerender-plugin` (it bundles the prerender script as a client chunk, adding ~800KB to the user-facing bundle with no way to prevent it)
33
36
 
34
37
  ### Common pitfalls (always flag these)
@@ -53,7 +56,9 @@ When a plan includes multiple screens/API calls, always note this item for the d
53
56
 
54
57
  - **Image preloading for detail views.** If the plan has a grid/list of thumbnails that link to detail views with full-size images, flag it if there's no preloading strategy. The fix: preload full-size images in the background (`new Image().src = url`) so they're in the browser cache by the time the user taps. This makes transitions feel instant.
55
58
 
56
- - **Layout shift with dynamic data or AI generatd text** If the plan includes dynamically-sized data (e.g., a wizard form with questions of differing lengths) or AI generated text (where text stream length is unpredictable), make sure to flag concerns about layout stability. Everything must either be a fixed size or smoothly animate between sizes. Text can never be clipped by a container or cause layout to jump around or grow in snappy/janky ways. Make sure to remind the developer that this is important to pay attention to.
59
+ - **Auth state read once instead of subscribed.** If the plan reads `auth.currentUser` or `auth.getCurrentUser()` in a `useState` initializer, at component top-level, or in a one-time check, the UI won't update after login/logout. The correct pattern is `auth.onAuthStateChanged(cb)` which fires immediately and on every auth transition. Flag if you see auth state read without a subscription.
60
+
61
+ - **Layout shift with dynamic data or AI generated text** If the plan includes dynamically-sized data (e.g., a wizard form with questions of differing lengths) or AI generated text (where text stream length is unpredictable), make sure to flag concerns about layout stability. Everything must either be a fixed size or smoothly animate between sizes. Text can never be clipped by a container or cause layout to jump around or grow in snappy/janky ways. Make sure to remind the developer that this is important to pay attention to.
57
62
 
58
63
  ## When to stay quiet
59
64
 
@@ -53,12 +53,12 @@ For photorealistic images, go deep on four dimensions:
53
53
 
54
54
  For app icons and logos, the goal is something that reads clearly at phone home screen size and feels polished and beautiful - like it could appear as an "App of the Year" award winner.
55
55
 
56
- - Frame as "A 3D icon against a XYZ background" followed by the subject. Do NOT use the phrase "app icon" — it triggers mockup framing (the model renders an icon inset on a phone screen or mounted on a wall). "3D icon" works. Always specify "Full bleed square composition with no padding or margin".
56
+ - Frame as "A 3D icon against a ful bleed XYZ background" followed by the subject. Do NOT use the phrase "app icon" — it triggers mockup framing (the model renders an icon inset on a phone screen or mounted on a wall). "3D icon" works. Always specify "Full bleed square composition with no padding or margin".
57
57
  - Describe smooth, rounded emoji-type 3D objects — think current macOS/iOS app icon design language. Apple emoji/nintendo style works really well for beautiful iconography. Not flat illustration, not photorealistic, not vectors.
58
58
  - Subjects should be immediately recognizable. Prefer one clear object or symbol, not a scene.
59
59
  - Specify "reads well at small sizes" as an explicit constraint.
60
60
  - Keep color intentional and limited — two or three accent colors plus the object's base tone. Colors should complement the app's brand if known.
61
- - Make sure to specify full bleed - never say anything about rounded corners or there is a high likelihood that the image will come back as a rounded rectangle on a white background!
61
+ - You must specify that the image is full bleed - never say anything about rounded corners or there is a high likelihood that the image will come back as a rounded rectangle on a white background!
62
62
  - Apply the same material/lighting/color density as photography prompts, just to a single object. Describe the surface finish ("high-gloss lacquered finish with clean specular highlights," "soft matte ceramic with subtle surface texture"), the lighting behavior ("warm directional light from upper left producing a bright highlight streak across the curved surface and a soft shadow beneath"), and color as relationships ("deep coral body graduating to warm peach at the highlight edge, with a cream accent on the lens element"). Generic descriptors like "clean surfaces, soft lighting" produce generic icons.
63
63
 
64
64
  #### Open Graph Sharing Images
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindstudio-ai/remy",
3
- "version": "0.1.116",
3
+ "version": "0.1.118",
4
4
  "description": "MindStudio coding agent",
5
5
  "repository": {
6
6
  "type": "git",