Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
08b1cc2
Update dependencies and implement deep link handling
SunkenInTime Mar 4, 2026
50bdb81
remove node_modules from repo
SunkenInTime Mar 4, 2026
2ec5d4b
Remove node modules
SunkenInTime Mar 4, 2026
c53cd0c
remove node_modules from repo
SunkenInTime Mar 4, 2026
de1e0d6
added to git ignore
SunkenInTime Mar 4, 2026
8eb9642
Enhance authentication features and integrate user management
SunkenInTime Mar 5, 2026
0bf06c3
Update core providers and widgets
SunkenInTime Mar 5, 2026
e24c2e2
Fix cloud snapshot rehydration and migration id collisions
cursoragent Mar 7, 2026
778cd2f
Fix cloud sync hydration and remove debug instrumentation
cursoragent Mar 7, 2026
a6ecc2d
Add email/password auth flows for Supabase
cursoragent Mar 8, 2026
0e1580b
fixed auth issues
SunkenInTime Mar 8, 2026
e40f565
merge: integrate icarus-cloud with latest main
cursoragent Mar 21, 2026
384fd74
Add cloud collaboration debug instrumentation
cursoragent Mar 21, 2026
b649b02
Remove cloud collaboration debug instrumentation
cursoragent Mar 21, 2026
64ee2ed
fix(cloud): hydrate remote library and auth flows
cursoragent Mar 21, 2026
7d6f622
fix(cloud): avoid duplicate strategy open on create
cursoragent Mar 21, 2026
84b9d39
Add Convex skill packs for agent runtimes
SunkenInTime Mar 23, 2026
b29ea57
Extract strategy models and migration logic
SunkenInTime Mar 23, 2026
fa54055
Refactor strategy page session hydration and sync
SunkenInTime Mar 23, 2026
82d81b3
Add cloud folder metadata and strategy parity
SunkenInTime Mar 23, 2026
d269d5f
Refine Convex skill guidance and workspace auth flow
SunkenInTime Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
411 changes: 411 additions & 0 deletions .agent/skills/convex-create-component/SKILL.md

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions .agent/skills/convex-create-component/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
interface:
display_name: "Convex Create Component"
short_description: "Design and build reusable Convex components with clear boundaries."
icon_small: "./assets/icon.svg"
icon_large: "./assets/icon.svg"
brand_color: "#14B8A6"
default_prompt: "Help me create a Convex component for this feature. First check that a component is actually justified, then design the tables, API surface, and app-facing wrappers before implementing it."

policy:
allow_implicit_invocation: true
3 changes: 3 additions & 0 deletions .agent/skills/convex-create-component/assets/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Hybrid Convex Components

Read this file only when the user explicitly wants a hybrid setup.

## What This Means

A hybrid component combines a local Convex component with shared library code.

This can help when:

- the user wants a local install but also shared package logic
- the component needs extension points or override hooks
- some logic should live in normal TypeScript code outside the component boundary

## Default Advice

Treat hybrid as an advanced option, not the default.

Before choosing it, ask:

- Why is a plain local component not enough?
- Why is a packaged component not enough?
- What exactly needs to stay overridable or shared?

If the answer is vague, fall back to local or packaged.

## Risks

- More moving parts
- Harder upgrades and backwards compatibility
- Easier to blur the component boundary

## Checklist

- [ ] User explicitly needs hybrid behavior
- [ ] Local-only and packaged-only options were considered first
- [ ] The extension points are clearly defined before coding
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Local Convex Components

Read this file when the component should live inside the current app and does not need to be published as an npm package.

## When to Choose This

- The user wants the simplest path
- The component only needs to work in this repo
- The goal is extracting app logic into a cleaner boundary

## Default Layout

Use this structure unless the repo already has a clear alternative pattern:

```text
convex/
convex.config.ts
components/
<name>/
convex.config.ts
schema.ts
<feature>.ts
```

## Workflow Notes

- Define the component with `defineComponent("<name>")`
- Install it from the app with `defineApp()` and `app.use(...)`
- Keep auth, env access, public API wrappers, and HTTP route mounting in the app
- Let the component own isolated tables and reusable backend workflows
- Add app wrappers if clients need to call into the component

## Checklist

- [ ] Component is inside `convex/components/<name>/`
- [ ] App installs it with `app.use(...)`
- [ ] Component owns only its own tables
- [ ] App wrappers handle client-facing calls when needed
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Packaged Convex Components

Read this file when the user wants a reusable npm package or a component shared across multiple apps.

## When to Choose This

- The user wants to publish the component
- The user wants a stable reusable package boundary
- The component will be shared across multiple apps or teams

## Default Approach

- Prefer starting from `npx create-convex@latest --component` when possible
- Keep the official authoring docs as the source of truth for package layout and exports
- Validate the bundled package through an example app, not just the source files

## Build Flow

When building a packaged component, make sure the bundled output exists before the example app tries to consume it.

Recommended order:

1. `npx convex codegen --component-dir ./path/to/component`
2. Run the package build command
3. Run `npx convex dev --typecheck-components` in the example app

Do not assume normal app codegen is enough for packaged component workflows.

## Package Exports

If publishing to npm, make sure the package exposes the entry points apps need:

- package root for client helpers, types, or classes
- `./convex.config.js` for installing the component
- `./_generated/component.js` for the app-facing `ComponentApi` type
- `./test` for testing helpers when applicable

## Testing

- Use `convex-test` for component logic
- Register the component schema and modules with the test instance
- Test app-side wrapper code from an example app that installs the package
- Export a small helper from `./test` if consumers need easy test registration

## Checklist

- [ ] Packaging is actually required
- [ ] Build order avoids bundle and codegen races
- [ ] Package exports include install and typing entry points
- [ ] Example app exercises the packaged component
- [ ] Core behavior is covered by tests
Loading
Loading