docs+tools: full app inventory + launcher manifest#86
Conversation
…cuts Adds Tools/Register-StartMenuApps.ps1: a data-driven, idempotent registrar that creates a searchable Start-Menu folder "Phenotype Apps" and, per app in Tools/apps.json, refreshes a stable .lnk launching the app in DEV/HMR mode. The generated per-app launcher .cmd boots backend services, starts the Vite dev server if its port is free, and opens the latest Electrobun launcher.exe with RENDERER_URL pointed at the live dev server (hot reload, never a frozen bundle). -App does one app; no-arg does all. Default fallback icon when the app .ico is absent. Wires a `just register-startmenu [app]` target documented as the post-build hook to run at the end of each `electrobun build`. Piloted on AgilePlus. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Classify 136 active KooshaPari repos (excl. archived + blocklist). Real runnable apps = 13: AgilePlus + 12 discovered (10 WEB-APP, 2 DESKTOP-APP: HeliosLab, slickport). Merge the 12 into Tools/apps.json (extends PR #85 manifest) and add docs/app-inventory.md with the per-repo probe results and class summary. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
CodeAnt AI is reviewing your PR. Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
|
Warning Review limit reached
More reviews will be available in 54 minutes and 7 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
There was a problem hiding this comment.
Code Review
This pull request expands the Tools/apps.json manifest with 12 newly discovered runnable applications and introduces a detailed docs/app-inventory.md tracking active repositories. However, several critical issues in the app configurations need to be addressed: repoPath fields are set to GitHub URLs instead of local paths, which will break the registration script; url and port fields are set to null, causing issues in the generated launcher batch files; and some projects (like the Rust-based helios-router) are incorrectly configured with npm dev commands. Additionally, there is a minor inconsistency in the documentation regarding the runnable status of AgilePlus.
| { | ||
| "name": "phenodocs", | ||
| "appId": "com.phenotype.phenodocs", | ||
| "repoPath": "https://github.com/KooshaPari/phenodocs", |
There was a problem hiding this comment.
The repoPath is set to a GitHub URL (https://github.com/KooshaPari/phenodocs), but the registration script Register-StartMenuApps.ps1 expects a local directory path. It uses Test-Path to verify the path's existence (line 160 of the script) and constructs local execution commands using it. Using a URL will cause the script to skip registering these apps. Consider using relative local paths (e.g., ../phenodocs) if the repositories are expected to be cloned side-by-side.
| "repoPath": "https://github.com/KooshaPari/phenodocs", | |
| "repoPath": "../phenodocs", |
| "url": null, | ||
| "port": null |
There was a problem hiding this comment.
Setting url and port to null will break the generated launcher batch files. In Register-StartMenuApps.ps1, an empty DEVPORT causes the netstat check to match incorrectly (matching any line with a colon and space), which falsely prevents the dev server from starting. Additionally, an empty RENDERER_URL will fail to launch the Electrobun shell or browser fallback correctly. Please specify valid default local ports and URLs (e.g., 5174 and http://localhost:5174) for these apps.
| "url": null, | |
| "port": null | |
| "url": "http://localhost:5174", | |
| "port": 5174 |
| "repoPath": "https://github.com/KooshaPari/helios-router", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", |
There was a problem hiding this comment.
The helios-router repository is configured with "command": "npm run dev", but according to docs/app-inventory.md (line 32), its files include .cargo and no package.json was detected (dev=None). This suggests it is a Rust project rather than an npm-based web app, so npm run dev will fail. Please verify the correct dev command for this repository (and others like phenotype-org-governance and chatta which also showed no npm/dev configuration in the probe).
| | DESKTOP-APP | 2 | | ||
| | DOCS | 2 | | ||
|
|
||
| **Runnable apps = 12** (10 WEB-APP + 2 DESKTOP-APP). Desktop shells: HeliosLab, slickport. None ship a branding `.ico` yet (all 12 need one). AgilePlus is a Rust workspace (crates/pheno-cli/agileplus-mcp) — CLI/SDK, not a web shell. |
There was a problem hiding this comment.
There is a slight inconsistency regarding AgilePlus. This line states that AgilePlus is a 'CLI/SDK, not a web shell', but Tools/apps.json configures it as a runnable app with a web dashboard dev server at crates/agileplus-dashboard/web. Please clarify or update this description to reflect that AgilePlus does contain a runnable web dashboard component.
| @@ -1,6 +1,6 @@ | |||
| { | |||
| "$schema": "./apps.schema.json", | |||
There was a problem hiding this comment.
WARNING: Schema file Tools/apps.schema.json does not exist in the repo, so the $schema reference is broken and any JSON Schema validation will fail. Either add the schema file (including definitions for the new fields class, hasDesktopShell, _needsIco) or remove the $schema key.
| | DESKTOP-APP | 2 | | ||
| | DOCS | 2 | | ||
|
|
||
| **Runnable apps = 12** (10 WEB-APP + 2 DESKTOP-APP). Desktop shells: HeliosLab, slickport. None ship a branding `.ico` yet (all 12 need one). AgilePlus is a Rust workspace (crates/pheno-cli/agileplus-mcp) — CLI/SDK, not a web shell. |
There was a problem hiding this comment.
WARNING: This line states Runnable apps = 12, but the manifest _comment on Tools/apps.json:3 says all 13 known runnable apps. The count should be consistent — it's either 12 (AgilePlus + 11 discovered) or 13 (AgilePlus + 12 discovered).
Code Review SummaryStatus: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Other Observations (not in diff)Issues in unchanged code that cannot receive inline comments:
Files Reviewed (2 files)
Fix these issues in Kilo Cloud Reviewed by step-3.7-flash-20260528 · 295,722 tokens |
| "repoPath": "https://github.com/KooshaPari/phenodocs", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "Planify", | ||
| "appId": "com.phenotype.planify", | ||
| "repoPath": "https://github.com/KooshaPari/Planify", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "OmniRoute", | ||
| "appId": "com.phenotype.omniroute", | ||
| "repoPath": "https://github.com/KooshaPari/OmniRoute", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "phenoRouterMonitor", | ||
| "appId": "com.phenotype.phenoroutermonitor", | ||
| "repoPath": "https://github.com/KooshaPari/phenoRouterMonitor", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "AtomsBot", | ||
| "appId": "com.phenotype.atomsbot", | ||
| "repoPath": "https://github.com/KooshaPari/AtomsBot", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "HeliosLab", | ||
| "appId": "com.phenotype.helioslab", | ||
| "repoPath": "https://github.com/KooshaPari/HeliosLab", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "DESKTOP-APP", | ||
| "hasDesktopShell": true, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "AppGen", | ||
| "appId": "com.phenotype.appgen", | ||
| "repoPath": "https://github.com/KooshaPari/AppGen", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm start", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "phenotype-auth-ts", | ||
| "appId": "com.phenotype.phenotypeauthts", | ||
| "repoPath": "https://github.com/KooshaPari/phenotype-auth-ts", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "helios-router", | ||
| "appId": "com.phenotype.heliosrouter", | ||
| "repoPath": "https://github.com/KooshaPari/helios-router", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "chatta", | ||
| "appId": "com.phenotype.chatta", | ||
| "repoPath": "https://github.com/KooshaPari/chatta", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "phenotype-org-governance", | ||
| "appId": "com.phenotype.phenotypeorggovernance", | ||
| "repoPath": "https://github.com/KooshaPari/phenotype-org-governance", | ||
| "devServer": { | ||
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null | ||
| }, | ||
| "class": "WEB-APP", | ||
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, | ||
| { | ||
| "name": "slickport", | ||
| "appId": "com.phenotype.slickport", | ||
| "repoPath": "https://github.com/KooshaPari/slickport", | ||
| "devServer": { |
There was a problem hiding this comment.
🟠 Architect Review — HIGH
The 12 newly added apps use GitHub URLs for repoPath, but the registrar expects local filesystem paths and calls Test-Path on them, so these entries are always treated as "Repo path missing" and skipped; the new manifest entries cannot actually be registered.
Suggestion: Store local clone filesystem paths in repoPath for runnable apps (or add a deterministic URL→local-path resolution step before registration) so that Test-Path $repo in Tools/Register-StartMenuApps.ps1 succeeds and shortcuts are created.
Fix in Cursor | Fix in VSCode Claude
(Use Cmd/Ctrl + Click for best experience)
Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.
**Path:** Tools/apps.json
**Line:** 27:193
**Comment:**
*HIGH: The 12 newly added apps use GitHub URLs for `repoPath`, but the registrar expects local filesystem paths and calls `Test-Path` on them, so these entries are always treated as "Repo path missing" and skipped; the new manifest entries cannot actually be registered.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix|
CodeAnt AI finished reviewing your PR. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 4 potential issues.
Bugbot Autofix prepared fixes for all 4 issues found in the latest run.
- ✅ Fixed: New entries use URLs where local paths required
- Replaced all 12 GitHub repoPath URLs with C:/Users/koosh/Dev/ paths matching the AgilePlus convention.
- ✅ Fixed: Null port causes wildcard match in launcher script
- Set explicit devServer url and port on the seven apps with verified dev commands so generated launchers no longer use empty DEVPORT.
- ✅ Fixed: Manifest assigns unverified dev commands to five apps
- Removed npm run dev from the five dev=None repos and skip registration when devServer has no command.
- ✅ Fixed: Missing
electrobunBuildDirwould crash script in strict mode- Added electrobunBuildDir build/dev-win-x64/ to each of the 12 new manifest entries.
Or push these changes by commenting:
@cursor push 05aa14824c
Preview (05aa14824c)
diff --git a/Tools/Register-StartMenuApps.ps1 b/Tools/Register-StartMenuApps.ps1
--- a/Tools/Register-StartMenuApps.ps1
+++ b/Tools/Register-StartMenuApps.ps1
@@ -161,6 +161,14 @@
Write-Warn "Repo path missing for '$name': $repo — skipping."
return
}
+ if (-not ($AppCfg.PSObject.Properties.Name -contains 'devServer') -or -not $AppCfg.devServer) {
+ Write-Warn "No devServer configured for '$name' — skipping."
+ return
+ }
+ if (-not ($AppCfg.devServer.PSObject.Properties.Name -contains 'command') -or -not $AppCfg.devServer.command) {
+ Write-Warn "No dev command configured for '$name' — skipping."
+ return
+ }
$launcher = New-LauncherCmd -AppCfg $AppCfg
diff --git a/Tools/apps.json b/Tools/apps.json
--- a/Tools/apps.json
+++ b/Tools/apps.json
@@ -24,13 +24,14 @@
{
"name": "phenodocs",
"appId": "com.phenotype.phenodocs",
- "repoPath": "https://github.com/KooshaPari/phenodocs",
+ "repoPath": "C:/Users/koosh/Dev/phenodocs",
"devServer": {
"cwd": ".",
"command": "npm run dev",
- "url": null,
- "port": null
+ "url": "http://localhost:5173",
+ "port": 5173
},
+ "electrobunBuildDir": "build/dev-win-x64/phenodocs",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -39,13 +40,14 @@
{
"name": "Planify",
"appId": "com.phenotype.planify",
- "repoPath": "https://github.com/KooshaPari/Planify",
+ "repoPath": "C:/Users/koosh/Dev/Planify",
"devServer": {
"cwd": ".",
"command": "npm run dev",
- "url": null,
- "port": null
+ "url": "http://localhost:3000",
+ "port": 3000
},
+ "electrobunBuildDir": "build/dev-win-x64/Planify",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -54,13 +56,14 @@
{
"name": "OmniRoute",
"appId": "com.phenotype.omniroute",
- "repoPath": "https://github.com/KooshaPari/OmniRoute",
+ "repoPath": "C:/Users/koosh/Dev/OmniRoute",
"devServer": {
"cwd": ".",
"command": "npm run dev",
- "url": null,
- "port": null
+ "url": "http://localhost:3000",
+ "port": 3000
},
+ "electrobunBuildDir": "build/dev-win-x64/OmniRoute",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -69,13 +72,11 @@
{
"name": "phenoRouterMonitor",
"appId": "com.phenotype.phenoroutermonitor",
- "repoPath": "https://github.com/KooshaPari/phenoRouterMonitor",
+ "repoPath": "C:/Users/koosh/Dev/phenoRouterMonitor",
"devServer": {
- "cwd": ".",
- "command": "npm run dev",
- "url": null,
- "port": null
+ "cwd": "."
},
+ "electrobunBuildDir": "build/dev-win-x64/phenoRouterMonitor",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -84,13 +85,14 @@
{
"name": "AtomsBot",
"appId": "com.phenotype.atomsbot",
- "repoPath": "https://github.com/KooshaPari/AtomsBot",
+ "repoPath": "C:/Users/koosh/Dev/AtomsBot",
"devServer": {
"cwd": ".",
"command": "npm run dev",
- "url": null,
- "port": null
+ "url": "http://localhost:5173",
+ "port": 5173
},
+ "electrobunBuildDir": "build/dev-win-x64/AtomsBot",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -99,13 +101,14 @@
{
"name": "HeliosLab",
"appId": "com.phenotype.helioslab",
- "repoPath": "https://github.com/KooshaPari/HeliosLab",
+ "repoPath": "C:/Users/koosh/Dev/HeliosLab",
"devServer": {
"cwd": ".",
"command": "npm run dev",
- "url": null,
- "port": null
+ "url": "http://localhost:5173",
+ "port": 5173
},
+ "electrobunBuildDir": "build/dev-win-x64/HeliosLab",
"class": "DESKTOP-APP",
"hasDesktopShell": true,
"ico": null,
@@ -114,13 +117,14 @@
{
"name": "AppGen",
"appId": "com.phenotype.appgen",
- "repoPath": "https://github.com/KooshaPari/AppGen",
+ "repoPath": "C:/Users/koosh/Dev/AppGen",
"devServer": {
"cwd": ".",
"command": "npm start",
- "url": null,
- "port": null
+ "url": "http://localhost:8081",
+ "port": 8081
},
+ "electrobunBuildDir": "build/dev-win-x64/AppGen",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -129,13 +133,11 @@
{
"name": "phenotype-auth-ts",
"appId": "com.phenotype.phenotypeauthts",
- "repoPath": "https://github.com/KooshaPari/phenotype-auth-ts",
+ "repoPath": "C:/Users/koosh/Dev/phenotype-auth-ts",
"devServer": {
- "cwd": ".",
- "command": "npm run dev",
- "url": null,
- "port": null
+ "cwd": "."
},
+ "electrobunBuildDir": "build/dev-win-x64/phenotype-auth-ts",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -144,13 +146,11 @@
{
"name": "helios-router",
"appId": "com.phenotype.heliosrouter",
- "repoPath": "https://github.com/KooshaPari/helios-router",
+ "repoPath": "C:/Users/koosh/Dev/helios-router",
"devServer": {
- "cwd": ".",
- "command": "npm run dev",
- "url": null,
- "port": null
+ "cwd": "."
},
+ "electrobunBuildDir": "build/dev-win-x64/helios-router",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -159,13 +159,11 @@
{
"name": "chatta",
"appId": "com.phenotype.chatta",
- "repoPath": "https://github.com/KooshaPari/chatta",
+ "repoPath": "C:/Users/koosh/Dev/chatta",
"devServer": {
- "cwd": ".",
- "command": "npm run dev",
- "url": null,
- "port": null
+ "cwd": "."
},
+ "electrobunBuildDir": "build/dev-win-x64/chatta",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -174,13 +172,11 @@
{
"name": "phenotype-org-governance",
"appId": "com.phenotype.phenotypeorggovernance",
- "repoPath": "https://github.com/KooshaPari/phenotype-org-governance",
+ "repoPath": "C:/Users/koosh/Dev/phenotype-org-governance",
"devServer": {
- "cwd": ".",
- "command": "npm run dev",
- "url": null,
- "port": null
+ "cwd": "."
},
+ "electrobunBuildDir": "build/dev-win-x64/phenotype-org-governance",
"class": "WEB-APP",
"hasDesktopShell": false,
"ico": null,
@@ -189,13 +185,14 @@
{
"name": "slickport",
"appId": "com.phenotype.slickport",
- "repoPath": "https://github.com/KooshaPari/slickport",
+ "repoPath": "C:/Users/koosh/Dev/slickport",
"devServer": {
"cwd": ".",
"command": "npm run dev",
- "url": null,
- "port": null
+ "url": "http://localhost:5180",
+ "port": 5180
},
+ "electrobunBuildDir": "build/dev-win-x64/slickport",
"class": "DESKTOP-APP",
"hasDesktopShell": true,
"ico": null,You can send follow-ups to the cloud agent here.
Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.
| { | ||
| "name": "phenodocs", | ||
| "appId": "com.phenotype.phenodocs", | ||
| "repoPath": "https://github.com/KooshaPari/phenodocs", |
There was a problem hiding this comment.
New entries use URLs where local paths required
High Severity
All 12 new entries set repoPath to GitHub URLs (e.g. "https://github.com/KooshaPari/phenodocs") while the consuming script Register-StartMenuApps.ps1 treats repoPath as a local filesystem directory — it runs Test-Path on it, uses it as a shortcut working directory, and interpolates it into .cmd launcher paths. Every new entry will fail the Test-Path check and be silently skipped, making the entire manifest expansion non-functional.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.
| "cwd": ".", | ||
| "command": "npm run dev", | ||
| "url": null, | ||
| "port": null |
There was a problem hiding this comment.
Null port causes wildcard match in launcher script
Medium Severity
All new entries have devServer.url and devServer.port set to null. If these entries are ever processed, the generated .cmd file will contain set DEVPORT= (empty), making the findstr ":%DEVPORT% " pattern effectively findstr ": " — matching nearly any netstat output line. This causes the script to falsely conclude the dev server is already running and never start it. The empty RENDERER_URL also means no Electrobun target and a broken browser fallback.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, |
There was a problem hiding this comment.
Manifest assigns unverified dev commands to five apps
Medium Severity
Five apps (phenoRouterMonitor, phenotype-auth-ts, helios-router, chatta, phenotype-org-governance) have dev=None in the inventory probe results — meaning no dev script was actually detected in those repos — yet the manifest assigns "command": "npm run dev" to all of them. These commands may not exist, and executing them would produce npm ERR! Missing script: "dev" failures at launch time.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.
| "hasDesktopShell": false, | ||
| "ico": null, | ||
| "_needsIco": true | ||
| }, |
There was a problem hiding this comment.
Missing electrobunBuildDir would crash script in strict mode
Medium Severity
All 12 new entries omit the electrobunBuildDir property. The consuming script runs under Set-StrictMode -Version Latest with $ErrorActionPreference = 'Stop', so accessing $AppCfg.electrobunBuildDir on any of these entries would throw a PropertyNotFoundException and terminate the script immediately. Unlike backend (which is guarded by a property-existence check), electrobunBuildDir is accessed unconditionally in New-LauncherCmd.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.






User description
Summary
Classified all 136 active KooshaPari repos from cheap
ghmetadata (archived + blocklist P2/472-P2/KVirtualStage/KlipDot/KodeVibeGo/kwality excluded), then did one lightweight contents probe per app candidate.Runnable apps = 13: AgilePlus (reference) + 12 discovered.
Other buckets: OTHER 66, LIBRARY-SDK 26, CLI 17, SERVICE 10, DOCS 2.
Changes
docs/app-inventory.md— class summary + per-repo probe resultsTools/apps.json— merged the 12 apps into the PR feat(tools): Start-Menu launcher registrar — native-only Electrobun shortcuts #85 manifest (now 13 entries)Notes
.icoyet — all flagged_needsIco.🤖 Generated with Claude Code
Note
Low Risk
Documentation and JSON manifest only; new entries are incomplete vs AgilePlus (no local paths, null dev URLs/ports, no electrobun dirs) until follow-up work.
Overview
Adds
docs/app-inventory.md, documenting classification of 136 active KooshaPari repos (counts by class plus per-repo probe metadata: dev command, ico, desktop shell).Expands
Tools/apps.jsonfrom a single AgilePlus entry to 13 apps (AgilePlus plus 12 discovered runnable repos). New entries use GitHubrepoPathURLs, placeholderdevServerblocks (url/portoften null), and metadata fieldsclass,hasDesktopShell,_needsIcowhere icons are missing. The manifest_commentnow points at the inventory doc instead of a vague “~38 apps” target.Reviewed by Cursor Bugbot for commit e0a8f34. Bugbot is set up for automated code reviews on this repo. Configure here.
CodeAnt-AI Description
Document the full runnable app inventory and add the discovered apps to the launcher manifest
What Changed
Impact
✅ Launcher covers all known runnable apps✅ Easier review of app coverage and missing assets✅ Clearer setup for follow-up launcher work💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.