Skip to content

docs+tools: full app inventory + launcher manifest#86

Open
KooshaPari wants to merge 2 commits into
mainfrom
docs/app-inventory-launcher-manifest
Open

docs+tools: full app inventory + launcher manifest#86
KooshaPari wants to merge 2 commits into
mainfrom
docs/app-inventory-launcher-manifest

Conversation

@KooshaPari
Copy link
Copy Markdown
Owner

@KooshaPari KooshaPari commented May 31, 2026

User description

Summary

Classified all 136 active KooshaPari repos from cheap gh metadata (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.

  • 10 WEB-APP: phenodocs, Planify, OmniRoute, phenoRouterMonitor, AtomsBot, AppGen, phenotype-auth-ts, helios-router, chatta, phenotype-org-governance
  • 2 DESKTOP-APP (shell present): HeliosLab, slickport

Other buckets: OTHER 66, LIBRARY-SDK 26, CLI 17, SERVICE 10, DOCS 2.

Changes

Notes

  • None of the 12 ship a branding .ico yet — all flagged _needsIco.
  • Do not merge yet; targets the launcher-registrar branch.

🤖 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.json from a single AgilePlus entry to 13 apps (AgilePlus plus 12 discovered runnable repos). New entries use GitHub repoPath URLs, placeholder devServer blocks (url/port often null), and metadata fields class, hasDesktopShell, _needsIco where icons are missing. The manifest _comment now 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

  • Added a new app inventory document that lists 136 active repos, their class counts, and probe results for each repo
  • Expanded the launcher manifest from AgilePlus only to 13 runnable apps total, including 12 newly discovered apps
  • Marked the new apps as missing branding icons and noted which ones have a desktop shell

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:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

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:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

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.

KooshaPari and others added 2 commits May 31, 2026 03:42
…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>
Copilot AI review requested due to automatic review settings May 31, 2026 11:57
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 31, 2026

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 ·
Reddit ·
LinkedIn

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 31, 2026

Warning

Review limit reached

@KooshaPari, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: e83bffa9-f07a-4826-99f3-c9371e01bcae

📥 Commits

Reviewing files that changed from the base of the PR and between 5677a51 and e0a8f34.

📒 Files selected for processing (2)
  • Tools/apps.json
  • docs/app-inventory.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/app-inventory-launcher-manifest
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch docs/app-inventory-launcher-manifest

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label May 31, 2026
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread Tools/apps.json
{
"name": "phenodocs",
"appId": "com.phenotype.phenodocs",
"repoPath": "https://github.com/KooshaPari/phenodocs",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

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.

Suggested change
"repoPath": "https://github.com/KooshaPari/phenodocs",
"repoPath": "../phenodocs",

Comment thread Tools/apps.json
Comment on lines +31 to +32
"url": null,
"port": null
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

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.

Suggested change
"url": null,
"port": null
"url": "http://localhost:5174",
"port": 5174

Comment thread Tools/apps.json
"repoPath": "https://github.com/KooshaPari/helios-router",
"devServer": {
"cwd": ".",
"command": "npm run dev",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

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).

Comment thread docs/app-inventory.md
| 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.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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.

Comment thread Tools/apps.json
@@ -1,6 +1,6 @@
{
"$schema": "./apps.schema.json",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread docs/app-inventory.md
| 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.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

@kilo-code-bot
Copy link
Copy Markdown

kilo-code-bot Bot commented May 31, 2026

Code Review Summary

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
WARNING 2
Issue Details (click to expand)

WARNING

File Line Issue
Tools/apps.json 2 Schema file Tools/apps.schema.json does not exist in the repo, so the $schema reference is broken and JSON Schema validation will fail. Either add the schema file (including definitions for class, hasDesktopShell, _needsIco) or remove the $schema key.
docs/app-inventory.md 16 Count inconsistency: the doc says "Runnable apps = 12" but Tools/apps.json:3 says "all 13 known runnable apps". These should match.
Other Observations (not in diff)

Issues in unchanged code that cannot receive inline comments:

File Line Issue
Tools/apps.json 27-202 All 12 new entries use "repoPath": "https://github.com/..." which is a remote URL, not a local C:/Users/koosh/Dev/... path like AgilePlus (line 9). If this manifest is consumed by a Windows script that expects local paths, these entries will fail.
Tools/apps.json 28-33 All new entries have "cwd": "." and "url"/"port": null. If the launcher script dereferences devServer.url or reads port without null checks, these entries will cause runtime errors.
Files Reviewed (2 files)
  • Tools/apps.json — 2 issues (1 inline, 1 observation)
  • docs/app-inventory.md — 1 issue (1 inline)

Fix these issues in Kilo Cloud


Reviewed by step-3.7-flash-20260528 · 295,722 tokens

Comment thread Tools/apps.json
Comment on lines +27 to +193
"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": {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 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
Copy link
Copy Markdown

codeant-ai Bot commented May 31, 2026

CodeAnt AI finished reviewing your PR.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 4 potential issues.

Fix All in Cursor

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 electrobunBuildDir would crash script in strict mode
    • Added electrobunBuildDir build/dev-win-x64/ to each of the 12 new manifest entries.

Create PR

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.

Comment thread Tools/apps.json
{
"name": "phenodocs",
"appId": "com.phenotype.phenodocs",
"repoPath": "https://github.com/KooshaPari/phenodocs",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.

Comment thread Tools/apps.json
"cwd": ".",
"command": "npm run dev",
"url": null,
"port": null
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.

Comment thread Tools/apps.json
"hasDesktopShell": false,
"ico": null,
"_needsIco": true
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.

Comment thread Tools/apps.json
"hasDesktopShell": false,
"ico": null,
"_needsIco": true
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e0a8f34. Configure here.

Base automatically changed from feat/startmenu-launcher-registrar to main June 1, 2026 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants