Skip to content

feat: implement plugin ecosystem architecture and UI components for s…#58

Merged
eedali merged 0 commit into
masterfrom
20-3
Jun 15, 2026
Merged

feat: implement plugin ecosystem architecture and UI components for s…#58
eedali merged 0 commit into
masterfrom
20-3

Conversation

@eedali

@eedali eedali commented May 29, 2026

Copy link
Copy Markdown
Collaborator

...ettings and features management

Description

This PR completely overhauls the extension system, transitioning KoBar from a local manual ZIP installation to a fully integrated, Cloud-Based Plugin Ecosystem (In-App Store). It seamlessly integrates dynamic UI routing, cloud fetching, and backend installation pipelines.

Key Changes & Implementations:

  • Phase 1: Navigation & Architecture Restructuring
    • Added a dedicated "Plugins" icon/button next to the Settings icon in the top header.
    • Cleaned up the main Settings menu by successfully decoupling and migrating Workspaces and KoBar Features into this new modular Plugins ecosystem.
  • Phase 2: Plugin Storefront (UI/UX)
    • Implemented a dynamic storefront with a real-time Search Bar.
    • Added strict multi-select Filter Tags (All, KoBar's plugins, Approved, Unapproved, Installed, Not Installed, Beta) with persistent Zustand state.
    • Built toggleable Grid View (2:3 vertical aspect ratio cards with banners) and List View layouts.
    • Added visual state indicators (Green glow for active, Red glow for inactive/disabled plugins).
  • Phase 3: Plugin Detail Page & GitHub API
    • Created a comprehensive Detail Page featuring plugin banners, tags, descriptions, and action buttons (Install, Uninstall, Enable/Disable).
    • Integrated live api.github.com fetch calls to display real-time repository stats (Stars, Forks, Contributors) directly in the UI.
  • Phase 4: Cloud Installation Pipeline
    • Engineered the backend to fetch specific, compiled .zip assets directly from the GitHub Releases API (ensuring clean installs without unnecessary source code files).
    • Implemented a smooth UI Progress Bar for the downloading phase.
    • Seamlessly piped the downloaded asset into the existing adm-zip extraction and validation engine.

Fixes #20

Type of Change

Please check the options that are relevant:

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • UI/UX improvement (visual changes or enhancements)
  • Documentation update

Screenshots / Video

(Buraya oluşturduğumuz Plugin Store Grid View, List View ve Detay Sayfası ekran görüntülerini ekleyebilirsin)

Checklist

Please check all the boxes before submitting your PR:

  • I have tested my code locally and it works flawlessly.
  • I am strictly sure that my changes DO NOT break KoBar's "Ghost Window" (transparent window) and click-through logic.
  • I have added necessary descriptions and comments to my code.
  • My code does not generate any new warnings or errors in the console.

@eedali eedali linked an issue May 29, 2026 that may be closed by this pull request
7 tasks
@eedali eedali self-assigned this May 29, 2026
@eedali

eedali commented May 29, 2026

Copy link
Copy Markdown
Collaborator Author

@arindam-sahoo
Could you take a closer look at this?
I'm working on something like this (similar to ComfyUI) for a system where everyone can write in their own repository and pull files to KoBar via a link.
It's not finished yet, but this is what I have in mind.

@arindam-sahoo arindam-sahoo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@eedali

eedali commented May 30, 2026

Copy link
Copy Markdown
Collaborator Author

@arindam-sahoo
Yes, many things need to be corrected. I've made a draft now.
It will be much better.
What do you think of this change in general, for a system like a store?

@arindam-sahoo

arindam-sahoo commented May 31, 2026

Copy link
Copy Markdown
Collaborator

@arindam-sahoo Yes, many things need to be corrected. I've made a draft now. It will be much better. What do you think of this change in general, for a system like a store?

It's great. I planned a week ago or so to implement this, but I was more into the open-source dev perspective who would make an extension of their own and use it. Not everyone will want host their extensions/plugins on GitHub or find it already there in the store. So, I think the Import of ZIP to Install a Extension/Plugin should also be there and not completely redacted.

@eedali

eedali commented May 31, 2026

Copy link
Copy Markdown
Collaborator Author

@arindam-sahoo Yes, many things need to be corrected. I've made a draft now. It will be much better. What do you think of this change in general, for a system like a store?

It's great. I planned a week ago or so to implement this, but I was more into the open-source dev perspective who would make an extension of their own and use it. Not everyone will want host their extensions/plugins on GitHub or find it already there in the store. So, I think the Import of ZIP to Install a Extension/Plugin should also be there and not completely redacted.

I have no intention of removing plugin installation locally via ZIP anyway 😉

Comment thread src/components/plugins/PluginDetail.tsx Fixed
@eedali

eedali commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

Here is the current status:
I've converted all KoBar features into plugins and created separate repositories for each: https://github.com/orgs/Kobar-Project/repositories

Here is how the system works:

  1. Local: Plugins can be installed as ZIP files directly through the plugins section in KoBar.

  2. Playground: You can develop and test plugins by creating a folder for each under the \pluginsPlayground directory. I also wrote a SKILL.md to easily generate plugins using an AI agent, and it works quite well overall.

  3. GitHub: We create separate repos for plugins, release them, and then add the repo link (e.g., Kobar-Project/Calculator-plugin) to plugins.json in the kobar-plugins-registry repository (Link: https://github.com/Kobar-Project/kobar-plugins-registry/blob/main/plugins.json).
    When pull requests are approved, a GitHub Action runs and registers these plugins into registry.json (Link: https://github.com/Kobar-Project/kobar-plugins-registry/blob/main/registry.json).
    Once saved to registry.json, they become visible and downloadable in KoBar's plugins tab.

Not everything is working perfectly yet, but it works well in general. I still can't get the Screenshot plugin to work exactly the way I want.

@arindam-sahoo could you check the new system?
What do you think?
Is there anything that needs to be changed?
Do you have any suggestions?

@arindam-sahoo

arindam-sahoo commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

Here is the current status: I've converted all KoBar features into plugins and created separate repositories for each: https://github.com/orgs/Kobar-Project/repositories

Here is how the system works:

  1. Local: Plugins can be installed as ZIP files directly through the plugins section in KoBar.
  2. Playground: You can develop and test plugins by creating a folder for each under the \pluginsPlayground directory. I also wrote a SKILL.md to easily generate plugins using an AI agent, and it works quite well overall.
  3. GitHub: We create separate repos for plugins, release them, and then add the repo link (e.g., Kobar-Project/Calculator-plugin) to plugins.json in the kobar-plugins-registry repository (Link: https://github.com/Kobar-Project/kobar-plugins-registry/blob/main/plugins.json).
    When pull requests are approved, a GitHub Action runs and registers these plugins into registry.json (Link: https://github.com/Kobar-Project/kobar-plugins-registry/blob/main/registry.json).
    Once saved to registry.json, they become visible and downloadable in KoBar's plugins tab.

Not everything is working perfectly yet, but it works well in general. I still can't get the Screenshot plugin to work exactly the way I want.

@arindam-sahoo could you check the new system? What do you think? Is there anything that needs to be changed? Do you have any suggestions?

I want to test whether this is a breaking change or not. Because I was trying it today morning and saw that when we are installing the plugins that we were previously using as features lost their data. However, the exported data worked for the Calendar, but did not for the Shortcuts, while it showed an EPROM Error for Snippet Vault.

I will be testing it once more because I was in a hurry.

If the issue persists, I will raise a PR for including Shortcuts data and the Snippet Vault data in the Exported Data. Then, we can create a branch asking users to Export the Data in a Click using a Warning Popup and deploy the branch. And, later we can go ahead and deploy the master branch once this PR is fully ready, and close that branch with the warning popup without merging it to master.

@eedali

eedali commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator Author

Here is the current status: I've converted all KoBar features into plugins and created separate repositories for each: https://github.com/orgs/Kobar-Project/repositories
Here is how the system works:

  1. Local: Plugins can be installed as ZIP files directly through the plugins section in KoBar.
  2. Playground: You can develop and test plugins by creating a folder for each under the \pluginsPlayground directory. I also wrote a SKILL.md to easily generate plugins using an AI agent, and it works quite well overall.
  3. GitHub: We create separate repos for plugins, release them, and then add the repo link (e.g., Kobar-Project/Calculator-plugin) to plugins.json in the kobar-plugins-registry repository (Link: https://github.com/Kobar-Project/kobar-plugins-registry/blob/main/plugins.json).
    When pull requests are approved, a GitHub Action runs and registers these plugins into registry.json (Link: https://github.com/Kobar-Project/kobar-plugins-registry/blob/main/registry.json).
    Once saved to registry.json, they become visible and downloadable in KoBar's plugins tab.

Not everything is working perfectly yet, but it works well in general. I still can't get the Screenshot plugin to work exactly the way I want.
@arindam-sahoo could you check the new system? What do you think? Is there anything that needs to be changed? Do you have any suggestions?

I want to test whether this is a breaking change or not. Because I was trying it today morning and saw that when we are installing the plugins that we were previously using as features lost their data. However, the exported data worked for the Calendar, but did not for the Shortcuts, while it showed an EPROM Error for Snippet Vault.

I will be testing it once more because I was in a hurry.

If the issue persists, I will raise a PR for including Shortcuts data and the Snippet Vault data in the Exported Data. Then, we can create a branch asking users to Export the Data in a Click using a Warning Popup and deploy the branch. And, later we can go ahead and deploy the master branch once this PR is fully ready, and close that branch with the warning popup without merging it to master.

That sounds like a solid plan. The data migration issue is definitely a blocker, so your idea for the temporary branch and warning popup is a great workaround to prevent data loss.

I really want to release this as v1.1.0 as soon as possible, but let's not rush it. We need to make sure we fix all these bugs first. You will be pushing fixes directly to this PR for the errors you find, right?

@eedali eedali marked this pull request as ready for review June 6, 2026 17:09
@eedali

eedali commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator Author

@arindam-sahoo Could you check the status of KoBar?
If you approve, let's release version 1.1.0 now ;)

@eedali

eedali commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator Author

I added a tutorial.

@arindam-sahoo

Copy link
Copy Markdown
Collaborator

@eedali Will check it by tomorrow. Sorry, was not available from the last week

@eedali

eedali commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator Author

@eedali Will check it by tomorrow. Sorry, was not available from the last week

No problem ;)

@eedali

eedali commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator Author

@arindam-sahoo hello 👋

@eedali eedali merged commit 1be7ab9 into master Jun 15, 2026
@eedali eedali deleted the 20-3 branch June 24, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Implement an Extension System for Modular Features

3 participants