vibefast-cli 1.3.0 → 1.3.1
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/README.md +30 -95
- package/dist/__tests__/recipes.test.js +8 -9
- package/dist/__tests__/recipes.test.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +271 -125
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/checklist.d.ts.map +1 -1
- package/dist/commands/checklist.js +85 -44
- package/dist/commands/checklist.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +13 -4
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +118 -26
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +202 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +61 -3
- package/dist/commands/remove.js.map +1 -1
- package/dist/core/auth.d.ts.map +1 -1
- package/dist/core/auth.js +20 -18
- package/dist/core/auth.js.map +1 -1
- package/dist/core/codemod.d.ts +33 -0
- package/dist/core/codemod.d.ts.map +1 -1
- package/dist/core/codemod.js +116 -0
- package/dist/core/codemod.js.map +1 -1
- package/dist/core/detect.d.ts.map +1 -1
- package/dist/core/detect.js +24 -7
- package/dist/core/detect.js.map +1 -1
- package/dist/core/journal.d.ts +1 -0
- package/dist/core/journal.d.ts.map +1 -1
- package/dist/core/journal.js.map +1 -1
- package/dist/core/recipes.d.ts.map +1 -1
- package/dist/core/recipes.js +25 -7
- package/dist/core/recipes.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/docs/architecture.md +50 -0
- package/docs/commands.md +78 -0
- package/docs/contributing.md +27 -0
- package/docs/quickstart.md +50 -0
- package/docs/recipes.md +57 -0
- package/docs/troubleshooting.md +31 -0
- package/package.json +2 -2
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/demo.tsx +445 -0
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +355 -0
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/types.ts +31 -0
- package/recipes/0/recipe.json +18 -0
- package/recipes/animated-chip/apps/native/src/components/advanced-ui/chip/demo.tsx +2 -1
- package/recipes/animated-chip/recipe.json +5 -2
- package/recipes/animated-chip-native@latest.zip +0 -0
- package/recipes/animated-chip@latest.zip +0 -0
- package/recipes/animated-switch/apps/native/src/components/advanced-ui/switch/demo.tsx +1 -1
- package/recipes/animated-switch/recipe.json +5 -2
- package/recipes/animated-switch-native@latest.zip +0 -0
- package/recipes/animated-switch@latest.zip +0 -0
- package/recipes/audio-recorder/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +2 -1
- package/recipes/audio-recorder/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +2 -2
- package/recipes/audio-recorder/recipe.json +7 -2
- package/recipes/audio-recorder-native@latest.zip +0 -0
- package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +2 -1
- package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +2 -1
- package/recipes/audio-recorder-supabase/recipe.json +12 -33
- package/recipes/audio-recorder-supabase-native@latest.zip +0 -0
- package/recipes/audio-recorder-supabase@latest.zip +0 -0
- package/recipes/audio-recorder@latest.zip +0 -0
- package/recipes/charts/apps/native/src/app/charts/index.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/bar-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/candlestick-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/column-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/line-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/radar-chart.tsx +3 -1
- package/recipes/charts/apps/native/src/features/charts/components/stacked-bar-chart.tsx +3 -1
- package/recipes/charts/recipe.json +13 -4
- package/recipes/charts-native@latest.zip +0 -0
- package/recipes/charts@latest.zip +0 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-markdown.tsx +86 -86
- package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/code-block.tsx +4 -4
- package/recipes/chatbot/recipe.json +3 -40
- package/recipes/chatbot-native@latest.zip +0 -0
- package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/chat-markdown.tsx +4 -1
- package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/markdown/code-block.tsx +86 -53
- package/recipes/chatbot-supabase/recipe.json +3 -69
- package/recipes/chatbot-supabase-native@latest.zip +0 -0
- package/recipes/chatbot-supabase@latest.zip +0 -0
- package/recipes/chatbot@latest.zip +0 -0
- package/recipes/glowing-button/recipe.json +6 -2
- package/recipes/glowing-button-native@latest.zip +0 -0
- package/recipes/glowing-button@latest.zip +0 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/_layout.tsx +5 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/analysis-options.tsx +50 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/camera.tsx +2 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/index.tsx +50 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/loading.tsx +50 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/results.tsx +2 -0
- package/recipes/image-analysis/apps/native/src/app/analysis/[type]/trait-details.tsx +3 -0
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +2 -2
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/camera.tsx +72 -65
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +65 -47
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/loading-screen.tsx +43 -2
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/loading.tsx +34 -1
- package/recipes/image-analysis/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +83 -2
- package/recipes/image-analysis/recipe.json +11 -19
- package/recipes/image-analysis-native@latest.zip +0 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/_layout.tsx +5 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/analysis-options.tsx +50 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/camera.tsx +2 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/index.tsx +50 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/loading.tsx +50 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/results.tsx +2 -0
- package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/trait-details.tsx +3 -0
- package/recipes/image-analysis-supabase/recipe.json +10 -70
- package/recipes/image-analysis-supabase-native@latest.zip +0 -0
- package/recipes/image-analysis-supabase@latest.zip +0 -0
- package/recipes/image-analysis@latest.zip +0 -0
- package/recipes/image-analyzer/apps/native/src/app/(root)/(protected)/image-analyzer/index.tsx +2 -0
- package/recipes/image-generator/apps/native/src/app/image-generator/gallery.tsx +3 -0
- package/recipes/image-generator/apps/native/src/app/image-generator/index.tsx +3 -0
- package/recipes/image-generator/recipe.json +8 -18
- package/recipes/image-generator-native@latest.zip +0 -0
- package/recipes/image-generator-supabase/recipe.json +6 -62
- package/recipes/image-generator-supabase-native@latest.zip +0 -0
- package/recipes/image-generator-supabase@latest.zip +0 -0
- package/recipes/image-generator@latest.zip +0 -0
- package/recipes/ios-widget/recipe.json +18 -119
- package/recipes/ios-widget-native@latest.zip +0 -0
- package/recipes/ios-widget@latest.zip +0 -0
- package/recipes/number-stepper/apps/native/src/components/advanced-ui/stepper/demo.tsx +1 -1
- package/recipes/number-stepper/recipe.json +5 -2
- package/recipes/number-stepper-native@latest.zip +0 -0
- package/recipes/number-stepper@latest.zip +0 -0
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/interactive-onboarding.tsx +11 -18
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/ai-tone-step.tsx +5 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/currency-step.tsx +9 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-ai-step.tsx +8 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-chatbot-step.tsx +6 -5
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-manual-step.tsx +4 -3
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-scan-step.tsx +6 -5
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/main-reason-step.tsx +5 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/notification-step.tsx +7 -6
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/overspend-step.tsx +5 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/personalizing-step.tsx +8 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/rating-step.tsx +6 -5
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/reminder-step.tsx +5 -6
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/safety-step.tsx +5 -4
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/struggle-step.tsx +5 -7
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/welcome-step.tsx +7 -6
- package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/ui/onboarding-header.tsx +4 -3
- package/recipes/onboarding/recipe.json +9 -6
- package/recipes/onboarding-native@latest.zip +0 -0
- package/recipes/onboarding@latest.zip +0 -0
- package/recipes/payments/apps/native/src/app/paywall/index.tsx +74 -0
- package/recipes/payments/apps/native/src/app/paywall/local.tsx +25 -0
- package/recipes/payments/apps/native/src/app/paywall/remote.tsx +23 -0
- package/recipes/payments/packages/backend/convex/payments.ts +21 -3
- package/recipes/payments/recipe.json +14 -34
- package/recipes/payments-native@latest.zip +0 -0
- package/recipes/payments-supabase/apps/native/src/app/paywall/index.tsx +74 -0
- package/recipes/payments-supabase/apps/native/src/app/paywall/local.tsx +25 -0
- package/recipes/payments-supabase/apps/native/src/app/paywall/remote.tsx +23 -0
- package/recipes/payments-supabase/recipe.json +16 -44
- package/recipes/payments-supabase-native@latest.zip +0 -0
- package/recipes/payments-supabase@latest.zip +0 -0
- package/recipes/payments@latest.zip +0 -0
- package/recipes/posthog/apps/native/src/components/analytics/navigation-tracker.tsx +14 -0
- package/recipes/posthog/apps/native/src/lib/hooks/use-navigation-analytics.ts +44 -0
- package/recipes/posthog/apps/native/src/providers/posthog-provider.tsx +51 -0
- package/recipes/posthog/recipe.json +60 -0
- package/recipes/posthog-native@latest.zip +0 -0
- package/recipes/progress-circle/apps/native/src/components/advanced-ui/progress-bars/progress-circle-page.tsx +1 -1
- package/recipes/progress-circle/recipe.json +5 -2
- package/recipes/progress-circle-native@latest.zip +0 -0
- package/recipes/progress-circle@latest.zip +0 -0
- package/recipes/quiz/apps/native/src/app/quiz/index.tsx +47 -0
- package/recipes/quiz/recipe.json +9 -6
- package/recipes/quiz-native@latest.zip +0 -0
- package/recipes/quiz@latest.zip +0 -0
- package/recipes/screen-kits/apps/native/src/app/screen-kits/_layout.tsx +12 -0
- package/recipes/screen-kits/apps/native/src/app/screen-kits/index.tsx +114 -0
- package/recipes/screen-kits/apps/native/src/features/screen-kits/index.ts +1 -0
- package/recipes/screen-kits/apps/native/src/features/screen-kits/types.ts +28 -0
- package/recipes/screen-kits/recipe.json +26 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/_layout.tsx +12 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/home.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/index.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson-complete.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson-fail.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/skill-tree.tsx +5 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/duo-button.tsx +174 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/skill-button.tsx +186 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/xp-header.tsx +115 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/constants.ts +89 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/index.ts +3 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/home-screen.tsx +225 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-complete-screen.tsx +485 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-fail-screen.tsx +105 -0
- package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-screen.tsx +384 -0
- package/recipes/screen-kits-duolingo/recipe.json +58 -0
- package/recipes/screen-kits-duolingo-native@latest.zip +0 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/_layout.tsx +45 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/asset-detail.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/notifications.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/receive.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/send.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/swap.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/wallet.tsx +3 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/ActionButtons.tsx +78 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/AssetRow.tsx +94 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/BalanceCard.tsx +118 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/constants.ts +85 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/asset-detail.tsx +378 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/notifications.tsx +210 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/receive-modal.tsx +317 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/send-modal.tsx +420 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/swap-modal.tsx +363 -0
- package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/wallet-dashboard.tsx +281 -0
- package/recipes/screen-kits-finance/recipe.json +46 -0
- package/recipes/screen-kits-finance-native@latest.zip +0 -0
- package/recipes/screen-kits-fitness/apps/native/assets/sounds/timer-beep.wav +0 -0
- package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/_layout.tsx +10 -0
- package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/index.tsx +6 -0
- package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/timer.tsx +3 -0
- package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/workout.tsx +3 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/timer-components.tsx +500 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/timer-settings-modal.tsx +352 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/workout-card.tsx +105 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/constants.ts +189 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/hooks/use-timer.ts +307 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/index.ts +1 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/screens/timer-screen.tsx +278 -0
- package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/screens/workout-dashboard.tsx +350 -0
- package/recipes/screen-kits-fitness/recipe.json +63 -0
- package/recipes/screen-kits-fitness-native@latest.zip +0 -0
- package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/habits.tsx +1 -0
- package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/kanban.tsx +1 -0
- package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/routes.ts +4 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/AddTaskModal.tsx +246 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/DraggableTaskCard.tsx +92 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/KanbanColumn.tsx +238 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/TaskCard.tsx +144 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/add-habit-modal.tsx +271 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/constants.ts +295 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/kanban-utils.ts +62 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/screens/habit-tracker.tsx +1160 -0
- package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/screens/kanban-board.tsx +432 -0
- package/recipes/screen-kits-habits/recipe.json +52 -0
- package/recipes/screen-kits-habits-native@latest.zip +0 -0
- package/recipes/screen-kits-native@latest.zip +0 -0
- package/recipes/sentry/apps/native/src/providers/sentry-provider.tsx +64 -0
- package/recipes/sentry/recipe.json +39 -0
- package/recipes/sentry-native@latest.zip +0 -0
- package/recipes/swipe-slider/apps/native/src/components/advanced-ui/sliders/swipe-slider-page.tsx +1 -1
- package/recipes/swipe-slider/recipe.json +5 -2
- package/recipes/swipe-slider-native@latest.zip +0 -0
- package/recipes/swipe-slider@latest.zip +0 -0
- package/recipes/timeline/apps/native/src/components/advanced-ui/timeline/demo.tsx +2 -1
- package/recipes/timeline/recipe.json +5 -2
- package/recipes/timeline-native@latest.zip +0 -0
- package/recipes/timeline@latest.zip +0 -0
- package/recipes/tracker-app/apps/native/src/app/tracker-app/index.tsx +1 -0
- package/recipes/tracker-app/recipe.json +10 -7
- package/recipes/tracker-app-native@latest.zip +0 -0
- package/recipes/tracker-app@latest.zip +0 -0
- package/recipes/upload-all.sh +8 -31
- package/recipes/voice-bot/apps/native/src/app/voice-bot/index.tsx +56 -0
- package/recipes/voice-bot/recipe.json +31 -7
- package/recipes/voice-bot-native@latest.zip +0 -0
- package/recipes/voice-bot@latest.zip +0 -0
- package/recipes/wake-word/apps/native/src/app/{(root)/(protected)/test-wake-word.tsx → test-wake-word.tsx} +43 -4
- package/recipes/wake-word/recipe.json +16 -26
- package/recipes/wake-word-native@latest.zip +0 -0
- package/recipes/wake-word@latest.zip +0 -0
- package/scripts/create-advanced-ui-recipes.sh +46 -19
- package/scripts/create-recipes.mjs +471 -117
- package/scripts/package-recipes.mjs +76 -0
- package/scripts/publish-all.sh +6 -2
- package/CHANGELOG.md +0 -198
- package/docs/archive/AUTO-DETECT-DEPS.md +0 -607
- package/docs/archive/FINAL-PACKAGE-STRATEGY.md +0 -583
- package/docs/archive/FINAL-SIMPLE-PLAN.md +0 -487
- package/docs/archive/FINAL-STATUS.md +0 -144
- package/docs/archive/FLOW-DIAGRAM.md +0 -1629
- package/docs/archive/GOTCHAS-AND-RISKS.md +0 -801
- package/docs/archive/IMPLEMENTATION-PLAN.md +0 -1360
- package/docs/archive/PLAN.md +0 -453
- package/docs/archive/PRODUCTION-READINESS.md +0 -684
- package/docs/archive/PRODUCTION-TEST-RESULTS.md +0 -465
- package/docs/archive/SIMPLIFIED-PLAN.md +0 -578
- package/docs/archive/STATUS.md +0 -199
- package/docs/archive/SUCCESS.md +0 -259
- package/docs/archive/TEST-SUMMARY.md +0 -261
- package/docs/archive/TESTING-CHECKLIST.md +0 -450
- package/docs/archive/USER-MODIFICATIONS.md +0 -448
- package/docs/decisions.md +0 -55
- package/docs/manual-testing.md +0 -91
- package/docs/next-steps.md +0 -12
- package/recipes/README.md +0 -156
- package/recipes/audio-recorder-supabase/packages/backend/src/services/recordings.ts +0 -369
- package/recipes/chatbot/apps/native/src/api-client/chatbot.ts +0 -83
- package/recipes/chatbot/packages/backend/convex/agents.ts +0 -115
- package/recipes/chatbot/packages/backend/convex/tools/index.ts +0 -18
- package/recipes/chatbot/packages/backend/convex/tools/knowledgeRetrieval.ts +0 -97
- package/recipes/chatbot/packages/backend/convex/tools/tavilySearch.ts +0 -83
- package/recipes/chatbot/packages/backend/convex/tools/userProfile.ts +0 -72
- package/recipes/chatbot-supabase/apps/native/src/api-client/supabase/chatbot.ts +0 -515
- package/recipes/chatbot-supabase/packages/backend/src/services/conversations.ts +0 -243
- package/recipes/chatbot-supabase/packages/backend/src/services/messages.ts +0 -327
- package/recipes/image-analysis/apps/native/src/api-client/image-analyzer.ts +0 -62
- package/recipes/image-analysis-supabase/packages/backend/src/services/image-analyses.ts +0 -132
- package/recipes/image-generator/apps/native/src/api-client/image-generator.ts +0 -34
- package/recipes/payments/apps/native/src/api-client/payments.ts +0 -44
- package/recipes/payments-supabase/packages/backend/src/services/payments.ts +0 -201
- package/recipes/posthog.json +0 -47
- package/recipes/revenuecat.json +0 -43
- package/recipes/sentry.json +0 -47
- package/recipes/wake-word/apps/native/assets/vosk-model/README.md +0 -103
- package/recipes/wake-word/apps/native/scripts/download-vosk-model.mjs +0 -127
- /package/recipes/{audio-recorder/apps/native/src/app/(root)/(protected) → audio-recorder-supabase/apps/native/src/app}/audio-recorder/index.tsx +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/AppIntent.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/CalorieTrackerWidget.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/HabitTrackerWidget.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Info.plist +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/WidgetLiveActivity.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/expo-target.config.js +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/generated.entitlements +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/index.swift +0 -0
- /package/recipes/ios-widget/{targets → apps/native/targets}/widget/widgets.swift +0 -0
|
@@ -1,450 +0,0 @@
|
|
|
1
|
-
# 🧪 VibeFast CLI - Complete Testing Checklist
|
|
2
|
-
|
|
3
|
-
## ⚠️ Current Test Status
|
|
4
|
-
|
|
5
|
-
### ✅ What's Been Tested
|
|
6
|
-
- [x] CLI builds successfully
|
|
7
|
-
- [x] Worker deploys to Cloudflare
|
|
8
|
-
- [x] Token authentication works
|
|
9
|
-
- [x] Recipe download from R2 works
|
|
10
|
-
- [x] File copying works (17 files)
|
|
11
|
-
- [x] Watermarking works
|
|
12
|
-
- [x] Journal tracking works
|
|
13
|
-
- [x] Feature installation works
|
|
14
|
-
- [x] File deletion works
|
|
15
|
-
|
|
16
|
-
### ⚠️ What Needs Testing
|
|
17
|
-
- [ ] Navigation injection (Option 3 - in progress)
|
|
18
|
-
- [ ] Navigation removal
|
|
19
|
-
- [ ] All edge cases below
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 📋 Complete Test Matrix
|
|
24
|
-
|
|
25
|
-
### 1. Authentication Tests
|
|
26
|
-
|
|
27
|
-
#### ✅ Login Command
|
|
28
|
-
- [x] `vf login --token VALID_TOKEN` → Success
|
|
29
|
-
- [ ] `vf login --token INVALID_TOKEN` → Error message
|
|
30
|
-
- [ ] `vf login --token ""` → Error message
|
|
31
|
-
- [ ] `vf login` (no token) → Error message
|
|
32
|
-
- [ ] Token persists across CLI runs
|
|
33
|
-
- [ ] Token stored securely in `~/.vibefast/config.json`
|
|
34
|
-
|
|
35
|
-
#### ✅ Logout Command
|
|
36
|
-
- [x] `vf logout` → Clears token
|
|
37
|
-
- [ ] `vf logout` when not logged in → Graceful message
|
|
38
|
-
- [ ] Commands fail after logout
|
|
39
|
-
|
|
40
|
-
#### Device Management
|
|
41
|
-
- [ ] `vf devices` → Lists active devices
|
|
42
|
-
- [ ] `vf devices` with no devices → Shows empty list
|
|
43
|
-
- [ ] `vf devices --deactivate <id>` → Removes device
|
|
44
|
-
- [ ] `vf devices --deactivate INVALID_ID` → Error message
|
|
45
|
-
- [ ] Device ID stable across runs
|
|
46
|
-
- [ ] Device ID unique per machine
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
### 2. Setup Validation Tests
|
|
51
|
-
|
|
52
|
-
#### Doctor Command
|
|
53
|
-
- [x] `vf doctor` in VibeFast repo → All checks pass
|
|
54
|
-
- [ ] `vf doctor` in non-VibeFast repo → Error
|
|
55
|
-
- [ ] `vf doctor` without `.vibefast/starter.json` → Error
|
|
56
|
-
- [ ] `vf doctor` with invalid starter.json → Error
|
|
57
|
-
- [ ] `vf doctor` without login → Shows not logged in
|
|
58
|
-
- [ ] `vf doctor` with missing nav markers → Warning
|
|
59
|
-
|
|
60
|
-
#### Repository Validation
|
|
61
|
-
- [ ] Detects missing signature file
|
|
62
|
-
- [ ] Validates signature name is "vibefast"
|
|
63
|
-
- [ ] Validates targets array exists
|
|
64
|
-
- [ ] Validates targets array not empty
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
### 3. Recipe Listing Tests
|
|
69
|
-
|
|
70
|
-
#### List Command
|
|
71
|
-
- [x] `vf list` → Shows all recipes
|
|
72
|
-
- [ ] `vf list` without login → Error
|
|
73
|
-
- [ ] `vf list` with invalid token → Error
|
|
74
|
-
- [ ] `vf list` groups by native/web
|
|
75
|
-
- [ ] `vf list` shows descriptions
|
|
76
|
-
- [ ] `vf list` when no recipes → Shows empty message
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
### 4. Feature Installation Tests
|
|
81
|
-
|
|
82
|
-
#### Basic Installation
|
|
83
|
-
- [x] `vf add charts` → Installs successfully
|
|
84
|
-
- [x] Files copied to correct locations (17 files)
|
|
85
|
-
- [x] Watermark added to files
|
|
86
|
-
- [x] Journal updated
|
|
87
|
-
- [ ] Navigation added correctly
|
|
88
|
-
- [ ] Re-running `vf add charts` → "Already installed" message
|
|
89
|
-
|
|
90
|
-
#### Installation with Options
|
|
91
|
-
- [ ] `vf add charts --dry-run` → Shows what would happen, no changes
|
|
92
|
-
- [ ] `vf add charts --force` → Overwrites existing files
|
|
93
|
-
- [ ] `vf add charts --target native` → Installs for native
|
|
94
|
-
- [ ] `vf add charts --target web` → Installs for web
|
|
95
|
-
- [ ] `vf add charts --target invalid` → Error message
|
|
96
|
-
|
|
97
|
-
#### Edge Cases
|
|
98
|
-
- [ ] Install when not logged in → Error
|
|
99
|
-
- [ ] Install invalid feature → Error from worker
|
|
100
|
-
- [ ] Install when device limit reached → Error
|
|
101
|
-
- [ ] Install when rate limited → Error with retry message
|
|
102
|
-
- [ ] Install with network error → Graceful error
|
|
103
|
-
- [ ] Install when disk full → Error
|
|
104
|
-
- [ ] Install when no write permissions → Error
|
|
105
|
-
- [ ] Install feature that's already installed → Idempotent (no-op)
|
|
106
|
-
|
|
107
|
-
#### Multiple Installations
|
|
108
|
-
- [ ] Install charts, then chatbot → Both work
|
|
109
|
-
- [ ] Install 5 features in a row → All tracked in journal
|
|
110
|
-
- [ ] Install, remove, reinstall → Works correctly
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
### 5. Feature Removal Tests
|
|
115
|
-
|
|
116
|
-
#### Basic Removal
|
|
117
|
-
- [x] `vf remove charts` → Removes successfully
|
|
118
|
-
- [x] Files deleted (17 files)
|
|
119
|
-
- [ ] Navigation removed correctly
|
|
120
|
-
- [x] Journal updated
|
|
121
|
-
- [ ] Re-running `vf remove charts` → "Not installed" message
|
|
122
|
-
|
|
123
|
-
#### Removal with Options
|
|
124
|
-
- [ ] `vf remove charts --dry-run` → Shows what would happen
|
|
125
|
-
- [ ] `vf remove charts --target native` → Removes from native
|
|
126
|
-
- [ ] `vf remove charts --target web` → Removes from web
|
|
127
|
-
|
|
128
|
-
#### Edge Cases
|
|
129
|
-
- [ ] Remove feature that's not installed → Graceful message
|
|
130
|
-
- [ ] Remove when files manually deleted → Handles gracefully
|
|
131
|
-
- [ ] Remove when journal corrupted → Error or recovery
|
|
132
|
-
- [ ] Remove when no write permissions → Error
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
### 6. Worker/Backend Tests
|
|
137
|
-
|
|
138
|
-
#### Token Validation
|
|
139
|
-
- [x] Valid token → Accepted
|
|
140
|
-
- [ ] Invalid token → 403 error
|
|
141
|
-
- [ ] Revoked token → 403 error
|
|
142
|
-
- [ ] Expired token (if implemented) → 403 error
|
|
143
|
-
|
|
144
|
-
#### Device Slot Management
|
|
145
|
-
- [ ] First device → Registered automatically
|
|
146
|
-
- [ ] Second device → Registered automatically
|
|
147
|
-
- [ ] Third device → Rejected (limit reached)
|
|
148
|
-
- [ ] Deactivate device → Slot freed
|
|
149
|
-
- [ ] Same device multiple requests → Not counted twice
|
|
150
|
-
|
|
151
|
-
#### Rate Limiting
|
|
152
|
-
- [ ] 30 requests in 1 minute → All succeed
|
|
153
|
-
- [ ] 31st request in 1 minute → 429 error
|
|
154
|
-
- [ ] Wait 1 minute → Rate limit resets
|
|
155
|
-
- [ ] 500 requests in 1 day → All succeed
|
|
156
|
-
- [ ] 501st request in 1 day → 429 error
|
|
157
|
-
|
|
158
|
-
#### Recipe Delivery
|
|
159
|
-
- [x] Valid recipe request → Returns base64 zip
|
|
160
|
-
- [ ] Invalid recipe name → 404 error
|
|
161
|
-
- [ ] Recipe not in R2 → 404 error
|
|
162
|
-
- [ ] Corrupted zip in R2 → Error
|
|
163
|
-
- [ ] Large recipe (>10MB) → Works
|
|
164
|
-
- [ ] Recipe with special characters → Works
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
### 7. File System Tests
|
|
169
|
-
|
|
170
|
-
#### File Operations
|
|
171
|
-
- [x] Copy files to new location → Success
|
|
172
|
-
- [ ] Copy files to existing location without --force → Error
|
|
173
|
-
- [ ] Copy files to existing location with --force → Overwrites
|
|
174
|
-
- [ ] Copy preserves file permissions → Verified
|
|
175
|
-
- [ ] Copy handles symlinks → Verified
|
|
176
|
-
- [ ] Copy handles large files (>100MB) → Success
|
|
177
|
-
|
|
178
|
-
#### Directory Operations
|
|
179
|
-
- [ ] Create nested directories → Success
|
|
180
|
-
- [ ] Handle existing directories → No error
|
|
181
|
-
- [ ] Clean up temp files after install → Verified
|
|
182
|
-
- [ ] Clean up temp files after error → Verified
|
|
183
|
-
|
|
184
|
-
#### Watermarking
|
|
185
|
-
- [x] Watermark added to .ts files → Verified
|
|
186
|
-
- [x] Watermark added to .tsx files → Verified
|
|
187
|
-
- [ ] Watermark added to .js files → Verified
|
|
188
|
-
- [ ] Watermark added to .jsx files → Verified
|
|
189
|
-
- [ ] Watermark NOT added to .json files → Verified
|
|
190
|
-
- [ ] Watermark NOT added to .md files → Verified
|
|
191
|
-
- [ ] Watermark format correct → `// vibefast license: hash-device`
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
### 8. Navigation Injection Tests
|
|
196
|
-
|
|
197
|
-
#### Native (Option 3 - vibefast-features.ts)
|
|
198
|
-
- [ ] First feature added → Array created correctly
|
|
199
|
-
- [ ] Second feature added → Appended to array
|
|
200
|
-
- [ ] Feature object has all required fields
|
|
201
|
-
- [ ] Feature object syntax valid TypeScript
|
|
202
|
-
- [ ] Import statement works in index.tsx
|
|
203
|
-
- [ ] Features render in app
|
|
204
|
-
|
|
205
|
-
#### Web
|
|
206
|
-
- [ ] Feature card added to page.tsx
|
|
207
|
-
- [ ] Multiple features added correctly
|
|
208
|
-
- [ ] Syntax valid React/JSX
|
|
209
|
-
|
|
210
|
-
#### Removal
|
|
211
|
-
- [ ] Remove feature → Removed from array
|
|
212
|
-
- [ ] Remove last feature → Array becomes empty
|
|
213
|
-
- [ ] Remove middle feature → Array stays valid
|
|
214
|
-
- [ ] Remove when manually edited → Handles gracefully
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
### 9. Journal Tests
|
|
219
|
-
|
|
220
|
-
#### Journal Creation
|
|
221
|
-
- [ ] First install → Creates `.vibefast/journal.json`
|
|
222
|
-
- [ ] Journal has correct structure
|
|
223
|
-
- [ ] Journal is valid JSON
|
|
224
|
-
|
|
225
|
-
#### Journal Updates
|
|
226
|
-
- [x] Install feature → Entry added
|
|
227
|
-
- [x] Remove feature → Entry removed
|
|
228
|
-
- [ ] Install multiple features → Multiple entries
|
|
229
|
-
- [ ] Reinstall feature → Entry updated, not duplicated
|
|
230
|
-
|
|
231
|
-
#### Journal Edge Cases
|
|
232
|
-
- [ ] Corrupted journal → Recovers or errors gracefully
|
|
233
|
-
- [ ] Missing journal → Creates new one
|
|
234
|
-
- [ ] Journal with unknown fields → Ignores them
|
|
235
|
-
- [ ] Very large journal (100+ entries) → Still works
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
### 10. Error Handling Tests
|
|
240
|
-
|
|
241
|
-
#### Network Errors
|
|
242
|
-
- [ ] Worker unreachable → Clear error message
|
|
243
|
-
- [ ] Timeout during download → Retry or error
|
|
244
|
-
- [ ] Partial download → Error and cleanup
|
|
245
|
-
- [ ] DNS failure → Clear error message
|
|
246
|
-
|
|
247
|
-
#### File System Errors
|
|
248
|
-
- [ ] No write permission → Clear error message
|
|
249
|
-
- [ ] Disk full → Clear error message
|
|
250
|
-
- [ ] File locked by another process → Error
|
|
251
|
-
- [ ] Path too long → Error
|
|
252
|
-
|
|
253
|
-
#### Data Errors
|
|
254
|
-
- [ ] Corrupted zip file → Error message
|
|
255
|
-
- [ ] Invalid recipe.json → Error message
|
|
256
|
-
- [ ] Missing recipe.json → Error message
|
|
257
|
-
- [ ] Invalid JSON in recipe → Error message
|
|
258
|
-
|
|
259
|
-
#### User Errors
|
|
260
|
-
- [ ] Typo in feature name → Helpful suggestion
|
|
261
|
-
- [ ] Wrong target specified → Clear error
|
|
262
|
-
- [ ] Command in wrong directory → Clear error
|
|
263
|
-
- [ ] Missing required arguments → Help message
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
### 11. Cross-Platform Tests
|
|
268
|
-
|
|
269
|
-
#### macOS (Your Current Platform)
|
|
270
|
-
- [x] All commands work
|
|
271
|
-
- [x] File paths correct
|
|
272
|
-
- [x] Device ID generation works
|
|
273
|
-
|
|
274
|
-
#### Linux
|
|
275
|
-
- [ ] All commands work
|
|
276
|
-
- [ ] File paths correct
|
|
277
|
-
- [ ] Device ID generation works
|
|
278
|
-
- [ ] Permissions handled correctly
|
|
279
|
-
|
|
280
|
-
#### Windows
|
|
281
|
-
- [ ] All commands work
|
|
282
|
-
- [ ] File paths correct (backslashes)
|
|
283
|
-
- [ ] Device ID generation works
|
|
284
|
-
- [ ] Line endings handled correctly (CRLF)
|
|
285
|
-
|
|
286
|
-
---
|
|
287
|
-
|
|
288
|
-
### 12. Security Tests
|
|
289
|
-
|
|
290
|
-
#### Token Security
|
|
291
|
-
- [ ] Token not logged to console
|
|
292
|
-
- [ ] Token not in error messages
|
|
293
|
-
- [ ] Token file has correct permissions (600)
|
|
294
|
-
- [ ] Token transmitted over HTTPS only
|
|
295
|
-
|
|
296
|
-
#### Watermark Security
|
|
297
|
-
- [ ] Watermark can't be easily removed
|
|
298
|
-
- [ ] Watermark doesn't break code
|
|
299
|
-
- [ ] Watermark traceable to customer
|
|
300
|
-
|
|
301
|
-
#### Input Validation
|
|
302
|
-
- [ ] SQL injection attempts → Rejected
|
|
303
|
-
- [ ] Path traversal attempts → Rejected
|
|
304
|
-
- [ ] Command injection attempts → Rejected
|
|
305
|
-
- [ ] XSS attempts → Rejected
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
### 13. Performance Tests
|
|
310
|
-
|
|
311
|
-
#### Speed
|
|
312
|
-
- [ ] `vf doctor` completes in <1s
|
|
313
|
-
- [ ] `vf list` completes in <2s
|
|
314
|
-
- [ ] `vf add` small feature (<10 files) in <5s
|
|
315
|
-
- [ ] `vf add` large feature (100+ files) in <30s
|
|
316
|
-
- [ ] `vf remove` completes in <3s
|
|
317
|
-
|
|
318
|
-
#### Resource Usage
|
|
319
|
-
- [ ] CLI uses <100MB RAM
|
|
320
|
-
- [ ] Temp files cleaned up
|
|
321
|
-
- [ ] No memory leaks on repeated use
|
|
322
|
-
|
|
323
|
-
---
|
|
324
|
-
|
|
325
|
-
### 14. Concurrent Usage Tests
|
|
326
|
-
|
|
327
|
-
#### Multiple CLI Instances
|
|
328
|
-
- [ ] Two `vf add` commands simultaneously → Both work or one waits
|
|
329
|
-
- [ ] `vf add` and `vf remove` simultaneously → Handled safely
|
|
330
|
-
- [ ] Multiple users on same machine → Separate configs
|
|
331
|
-
|
|
332
|
-
---
|
|
333
|
-
|
|
334
|
-
### 15. Upgrade/Migration Tests
|
|
335
|
-
|
|
336
|
-
#### CLI Updates
|
|
337
|
-
- [ ] Update CLI version → Old config still works
|
|
338
|
-
- [ ] Update CLI version → Old journal still works
|
|
339
|
-
- [ ] Breaking change → Migration guide provided
|
|
340
|
-
|
|
341
|
-
#### Recipe Updates
|
|
342
|
-
- [ ] Install v1.0, update to v1.1 → Works
|
|
343
|
-
- [ ] Recipe format changes → Backward compatible
|
|
344
|
-
|
|
345
|
-
---
|
|
346
|
-
|
|
347
|
-
### 16. Real-World Scenarios
|
|
348
|
-
|
|
349
|
-
#### Typical Customer Journey
|
|
350
|
-
- [ ] Buy license → Get token
|
|
351
|
-
- [ ] Install CLI → `npm install -g vibefast-cli`
|
|
352
|
-
- [ ] Login → `vf login --token <TOKEN>`
|
|
353
|
-
- [ ] Check setup → `vf doctor`
|
|
354
|
-
- [ ] Browse features → `vf list`
|
|
355
|
-
- [ ] Install feature → `vf add charts`
|
|
356
|
-
- [ ] Test in app → Feature works
|
|
357
|
-
- [ ] Install another → `vf add chatbot`
|
|
358
|
-
- [ ] Remove unused → `vf remove charts`
|
|
359
|
-
- [ ] Everything works smoothly
|
|
360
|
-
|
|
361
|
-
#### Edge Case Customer
|
|
362
|
-
- [ ] Install on 3 machines → 3rd rejected
|
|
363
|
-
- [ ] Deactivate old machine → Works
|
|
364
|
-
- [ ] Install on new machine → Works
|
|
365
|
-
- [ ] Hit rate limit → Clear message
|
|
366
|
-
- [ ] Wait and retry → Works
|
|
367
|
-
|
|
368
|
-
#### Problem Customer
|
|
369
|
-
- [ ] Share token with friend → Both can't use simultaneously (device limit)
|
|
370
|
-
- [ ] Try to remove watermark → Difficult/obvious
|
|
371
|
-
- [ ] Try to bypass auth → Fails
|
|
372
|
-
- [ ] Report bug → Logs help debug
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
|
-
## 🎯 Priority Testing Order
|
|
377
|
-
|
|
378
|
-
### P0 (Must Work - Blocking)
|
|
379
|
-
1. ✅ Login/logout
|
|
380
|
-
2. ✅ Doctor validation
|
|
381
|
-
3. ✅ Add feature (basic)
|
|
382
|
-
4. ✅ Remove feature (basic)
|
|
383
|
-
5. ⚠️ Navigation injection (in progress)
|
|
384
|
-
6. Token validation
|
|
385
|
-
7. Device limit enforcement
|
|
386
|
-
|
|
387
|
-
### P1 (Should Work - Important)
|
|
388
|
-
1. Dry-run mode
|
|
389
|
-
2. Force mode
|
|
390
|
-
3. Error messages
|
|
391
|
-
4. Rate limiting
|
|
392
|
-
5. Multiple features
|
|
393
|
-
6. Journal integrity
|
|
394
|
-
|
|
395
|
-
### P2 (Nice to Have - Polish)
|
|
396
|
-
1. Performance optimization
|
|
397
|
-
2. Better error messages
|
|
398
|
-
3. Progress indicators
|
|
399
|
-
4. Colored output
|
|
400
|
-
5. Helpful suggestions
|
|
401
|
-
|
|
402
|
-
---
|
|
403
|
-
|
|
404
|
-
## 🐛 Known Issues
|
|
405
|
-
|
|
406
|
-
### Current Bugs
|
|
407
|
-
1. ⚠️ Navigation removal doesn't clean vibefast-features.ts array
|
|
408
|
-
2. ⚠️ Need to test all edge cases above
|
|
409
|
-
|
|
410
|
-
### Workarounds
|
|
411
|
-
1. Manually edit vibefast-features.ts if needed
|
|
412
|
-
2. Use --force to reinstall
|
|
413
|
-
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
## ✅ Test Completion Status
|
|
417
|
-
|
|
418
|
-
- **Total Tests:** ~150
|
|
419
|
-
- **Completed:** ~15 (10%)
|
|
420
|
-
- **In Progress:** 2
|
|
421
|
-
- **Remaining:** ~133
|
|
422
|
-
|
|
423
|
-
---
|
|
424
|
-
|
|
425
|
-
## 🚀 Next Steps
|
|
426
|
-
|
|
427
|
-
1. Fix navigation removal bug
|
|
428
|
-
2. Test all P0 items
|
|
429
|
-
3. Test all P1 items
|
|
430
|
-
4. Document any issues found
|
|
431
|
-
5. Create automated test suite
|
|
432
|
-
6. Run tests on Linux/Windows
|
|
433
|
-
|
|
434
|
-
---
|
|
435
|
-
|
|
436
|
-
## 📝 Test Results Log
|
|
437
|
-
|
|
438
|
-
### 2025-01-12 - Initial Testing
|
|
439
|
-
- ✅ Basic installation works
|
|
440
|
-
- ✅ Watermarking works
|
|
441
|
-
- ✅ File copying works
|
|
442
|
-
- ⚠️ Navigation injection needs Option 3 implementation
|
|
443
|
-
- ⚠️ Navigation removal needs fixing
|
|
444
|
-
|
|
445
|
-
### Next Test Session
|
|
446
|
-
- [ ] Complete Option 3 implementation
|
|
447
|
-
- [ ] Test full add/remove cycle
|
|
448
|
-
- [ ] Test edge cases
|
|
449
|
-
- [ ] Test on different machines
|
|
450
|
-
|