@vibes.diy/prompts 8.0.8 → 8.1.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/prompts",
3
- "version": "8.0.8",
3
+ "version": "8.1.0",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "description": "",
@@ -24,9 +24,9 @@
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
26
  "@adviser/cement": "~0.5.34",
27
- "@vibes.diy/call-ai-v2": "^8.0.8",
28
- "@vibes.diy/identity": "^8.0.8",
29
- "@vibes.diy/use-vibes-types": "^8.0.8",
27
+ "@vibes.diy/call-ai-v2": "^8.1.0",
28
+ "@vibes.diy/identity": "^8.1.0",
29
+ "@vibes.diy/use-vibes-types": "^8.1.0",
30
30
  "arktype": "~2.2.3",
31
31
  "json-schema-faker": "~0.6.2"
32
32
  },
@@ -302,15 +302,20 @@ docs in your database, and never build follow UI state machines.
302
302
  on channels+grant without `audience`; never write channel names starting with `~`.
303
303
  - Copy: "followers can see your picks" / "people you follow" — never "friends".
304
304
  Following someone is low-stakes (it reveals none of YOUR data) — no confirm dialogs.
305
- - `useSocial()` also returns `followersEnabled: boolean` (read-only: is THIS app currently
306
- armed to share the viewer's own activity with followers?) and
307
- `requestFollowersAccess(): Promise<void>` (invites the platform's consent prompt for this
308
- app; resolves quietly with no state change if the viewer already declined or opted out —
309
- never call it in a loop, on every render, or more than once per explicit user action). An
310
- app whose whole point is sharing with followers (a picks list, a public-feeling log) shows a
311
- small callout when `!followersEnabled` "open to followers so friends can see your picks" —
312
- wired to this action; an app that's inherently private (a diary, a personal tracker) renders
313
- nothing here at all. Don't invent a callout an app's own privacy doesn't call for.
305
+ - `useSocial()` also returns `followersEnabled: boolean` (read-only: can THIS app's
306
+ audience-gated docs currently reach the viewer's followers?) and
307
+ `requestFollowersAccess(): Promise<void>` (the preflight consent path). For a normal app,
308
+ `followersEnabled` is ON by default sharing with followers just works, so DON'T gate your
309
+ audience UI on it or make users flip a switch first. It is `false` only for the minority:
310
+ the viewer explicitly turned this app off, chose a never-share standing policy, or the app is
311
+ marked privacy-sensitive (a diary, a personal tracker), where sharing stays off until a
312
+ deliberate opt-in. Show a small "open to followers so friends can see your picks" callout
313
+ wired to `requestFollowersAccess()` ONLY when `!followersEnabled` (that minority), for an app
314
+ whose whole point is sharing; for a privacy-sensitive app this is the deliberate-consent
315
+ prompt. `requestFollowersAccess()` resolves quietly with no state change (including when the
316
+ app is already enabled, or the viewer already declined/opted out) — never call it in a loop,
317
+ on every render, or more than once per explicit user action. Don't invent a callout an app's
318
+ own privacy doesn't call for.
314
319
  - To grow the graph, `useSocial()` returns
315
320
  `invite(email: string): Promise<"ok" | "rate-limited" | "cancelled">` — asks the PLATFORM to
316
321
  email a non-user an invitation to connect with the viewer. The platform shows a consent prompt,
@@ -303,15 +303,20 @@ docs in your database, and never build follow UI state machines.
303
303
  on channels+grant without `audience`; never write channel names starting with `~`.
304
304
  - Copy: "followers can see your picks" / "people you follow" — never "friends".
305
305
  Following someone is low-stakes (it reveals none of YOUR data) — no confirm dialogs.
306
- - `useSocial()` also returns `followersEnabled: boolean` (read-only: is THIS app currently
307
- armed to share the viewer's own activity with followers?) and
308
- `requestFollowersAccess(): Promise<void>` (invites the platform's consent prompt for this
309
- app; resolves quietly with no state change if the viewer already declined or opted out —
310
- never call it in a loop, on every render, or more than once per explicit user action). An
311
- app whose whole point is sharing with followers (a picks list, a public-feeling log) shows a
312
- small callout when `!followersEnabled` "open to followers so friends can see your picks" —
313
- wired to this action; an app that's inherently private (a diary, a personal tracker) renders
314
- nothing here at all. Don't invent a callout an app's own privacy doesn't call for.
306
+ - `useSocial()` also returns `followersEnabled: boolean` (read-only: can THIS app's
307
+ audience-gated docs currently reach the viewer's followers?) and
308
+ `requestFollowersAccess(): Promise<void>` (the preflight consent path). For a normal app,
309
+ `followersEnabled` is ON by default sharing with followers just works, so DON'T gate your
310
+ audience UI on it or make users flip a switch first. It is `false` only for the minority:
311
+ the viewer explicitly turned this app off, chose a never-share standing policy, or the app is
312
+ marked privacy-sensitive (a diary, a personal tracker), where sharing stays off until a
313
+ deliberate opt-in. Show a small "open to followers so friends can see your picks" callout
314
+ wired to `requestFollowersAccess()` ONLY when `!followersEnabled` (that minority), for an app
315
+ whose whole point is sharing; for a privacy-sensitive app this is the deliberate-consent
316
+ prompt. `requestFollowersAccess()` resolves quietly with no state change (including when the
317
+ app is already enabled, or the viewer already declined/opted out) — never call it in a loop,
318
+ on every render, or more than once per explicit user action. Don't invent a callout an app's
319
+ own privacy doesn't call for.
315
320
  - To grow the graph, `useSocial()` returns
316
321
  `invite(email: string): Promise<"ok" | "rate-limited" | "cancelled">` — asks the PLATFORM to
317
322
  email a non-user an invitation to connect with the viewer. The platform shows a consent prompt,
package/system-prompt.md CHANGED
@@ -473,15 +473,20 @@ docs in your database, and never build follow UI state machines.
473
473
  on channels+grant without `audience`; never write channel names starting with `~`.
474
474
  - Copy: "followers can see your picks" / "people you follow" — never "friends".
475
475
  Following someone is low-stakes (it reveals none of YOUR data) — no confirm dialogs.
476
- - `useSocial()` also returns `followersEnabled: boolean` (read-only: is THIS app currently
477
- armed to share the viewer's own activity with followers?) and
478
- `requestFollowersAccess(): Promise<void>` (invites the platform's consent prompt for this
479
- app; resolves quietly with no state change if the viewer already declined or opted out —
480
- never call it in a loop, on every render, or more than once per explicit user action). An
481
- app whose whole point is sharing with followers (a picks list, a public-feeling log) shows a
482
- small callout when `!followersEnabled` "open to followers so friends can see your picks" —
483
- wired to this action; an app that's inherently private (a diary, a personal tracker) renders
484
- nothing here at all. Don't invent a callout an app's own privacy doesn't call for.
476
+ - `useSocial()` also returns `followersEnabled: boolean` (read-only: can THIS app's
477
+ audience-gated docs currently reach the viewer's followers?) and
478
+ `requestFollowersAccess(): Promise<void>` (the preflight consent path). For a normal app,
479
+ `followersEnabled` is ON by default sharing with followers just works, so DON'T gate your
480
+ audience UI on it or make users flip a switch first. It is `false` only for the minority:
481
+ the viewer explicitly turned this app off, chose a never-share standing policy, or the app is
482
+ marked privacy-sensitive (a diary, a personal tracker), where sharing stays off until a
483
+ deliberate opt-in. Show a small "open to followers so friends can see your picks" callout
484
+ wired to `requestFollowersAccess()` ONLY when `!followersEnabled` (that minority), for an app
485
+ whose whole point is sharing; for a privacy-sensitive app this is the deliberate-consent
486
+ prompt. `requestFollowersAccess()` resolves quietly with no state change (including when the
487
+ app is already enabled, or the viewer already declined/opted out) — never call it in a loop,
488
+ on every render, or more than once per explicit user action. Don't invent a callout an app's
489
+ own privacy doesn't call for.
485
490
  - To grow the graph, `useSocial()` returns
486
491
  `invite(email: string): Promise<"ok" | "rate-limited" | "cancelled">` — asks the PLATFORM to
487
492
  email a non-user an invitation to connect with the viewer. The platform shows a consent prompt,