diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..df559212d22 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,85 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement by emailing +[hoakiet98@gmail.com](mailto:hoakiet98@gmail.com). +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe4d5d354be..6f765e1d3c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1,28 @@ -Coming soon \ No newline at end of file +When contributing to this repository, please first discuss the change you wish to make via [issues](https://github.com/superset-sh/superset/issues) before making a change. + +Please note we have a [code of conduct](./CODE_OF_CONDUCT.md), please follow it in all your interactions with the project. + +## Pull Request Process + +1. To create a Pull Request (PR), [create a fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) of the project. + +![fork](https://github.com/user-attachments/assets/d1c3b3a3-a170-4507-8ccc-e10d5afcfb69) + +2. Create your changes in your fork and [open a PR from that fork.](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) + +![contribute](https://github.com/user-attachments/assets/2617f366-145d-4418-ba2e-582fc9aedc54) + +3. Update the PR description with details of the changes. Link the issue if relevant. + +4. Be sure to check the box to "Allow edits from maintainer". This allows maintainers to update your PR if necessary which speeds up the review process. [See more here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork). + +Screenshot_2024-10-22_at_11 31 50_PM + + +5. Request a review of one of the maintainers. Once accepted, they will be able to merge your PR. + +## Style guide + +We try to follow guidelines from [Clean Code](https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29) and the boy scoute rule: + +"Leave the code cleaner, not messier, than how you found it". \ No newline at end of file diff --git a/README.md b/README.md index 207ba3c1919..7689c6c9ee4 100644 --- a/README.md +++ b/README.md @@ -3,26 +3,24 @@ supersetlogo -

Superset

- The last developer tool you'll ever need + Run 10+ parallel coding agents on your machine

[![Superset Twitter](https://img.shields.io/badge/@superset_sh-555?logo=x)](https://x.com/superset_sh) -## Motivation -What do you do when your coding agent is running? Our answer is to start another coding task in parallel. The best developer can run 10+ tasks in parallel. - -With Superset, you can run 100. +## A Terminal Built for Coding Agents +Run 10+ CLI coding agents like Claude Code, Codex, etc. in parallel on your machine. +Spin up new coding tasks while waiting for your current agent to finish. Quickly switch between tasks as they need your attention. ## What you can do with Superset: - [X] Create and organize parallel coding environment - [X] Get notified when an agent needs your review -- [ ] Share context between your agents +- [ ] Share context between agents - [ ] Code on the go with a cloud environment - [ ] Automate reviewing and feedback - [ ] Create and manage Git pull requests @@ -31,46 +29,81 @@ With Superset, you can run 100. ## Getting Started - -[Download the app](https://superset.sh) or -[run locally](https://superset.sh). +Prerequesite: -### Usage +1. Install [Bun](https://bun.sh/) (package manager and Node runtime) + +2. Clone the repo from GitHub +``` +git clone https://github.com/superset-sh/superset.git +``` + +Install dependencies: +```bash +bun install +``` + +Run in dev mode: +```bash +bun install +bun run dev +``` + +Build desktop app: +```bash +bun run build +open apps/desktop/release +``` -For each parallel tasks, Superset uses git worktree to clone a new branch on your machine. +> [!NOTE] +> While Electron is cross-platform, Superset Desktop has only been built and tested on **macOS**. Other platforms are currently untested and may not work as expected. -Automate copying env variables, installing dependencies, etc. through the app or with a setup script `./superset/setup.json` +### Usage + +For each parallel tasks, Superset uses git worktree to clone a new branch on your machine. Automate copying env variables, installing dependencies, etc. through a setup script `./superset/setup.json` - - +
+ +

+ Each workspace gets their own organized terminal system. You can create default presets. - - + +
+ +

Superset monitors your running processes, notify you when changes are ready, and help coordinate between multiple agents. - - + +
+Notifications +

-### Our Tech Stack +### Tech Stack + +[![Electron](https://img.shields.io/badge/Electron-191970?logo=Electron&logoColor=white)](https://www.electronjs.org/) +[![React](https://img.shields.io/badge/React-%2320232a.svg?logo=react&logoColor=%2361DAFB)](https://reactjs.org/) +[![TailwindCSS](https://img.shields.io/badge/Tailwindcss-%2338B2AC.svg?logo=tailwind-css&logoColor=white)](https://tailwindcss.com/) [![Bun](https://img.shields.io/badge/Bun-000000?logo=bun&logoColor=white)](https://bun.sh/) [![Turborepo](https://img.shields.io/badge/Turborepo-EF4444?logo=turborepo&logoColor=white)](https://turbo.build/) -[![Electron](https://img.shields.io/badge/Electron-191970?logo=Electron&logoColor=white)](https://www.electronjs.org/) -[![React](https://img.shields.io/badge/react-%2320232a.svg?logo=react&logoColor=%2361DAFB)](https://reactjs.org/) -[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://www.typescriptlang.org/) -[![Vite](https://img.shields.io/badge/vite-%23646CFF.svg?logo=vite&logoColor=white)](https://vitejs.dev/) -[![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?logo=tailwind-css&logoColor=white)](https://tailwindcss.com/) +[![Vite](https://img.shields.io/badge/Vite-%23646CFF.svg?logo=vite&logoColor=white)](https://vitejs.dev/) +[![Biome](https://img.shields.io/badge/Biome-339AF0?logo=biome&logoColor=white)](https://biomejs.dev/) [![Drizzle ORM](https://img.shields.io/badge/Drizzle%20ORM-FFE873?logo=drizzle&logoColor=black)](https://orm.drizzle.team/) [![Neon](https://img.shields.io/badge/Neon-00E9CA?logo=neon&logoColor=white)](https://neon.tech/) [![tRPC](https://img.shields.io/badge/tRPC-2596BE?logo=trpc&logoColor=white)](https://trpc.io/) -[![Biome](https://img.shields.io/badge/Biome-339AF0?logo=biome&logoColor=white)](https://biomejs.dev/) -[![shadcn/ui](https://img.shields.io/badge/shadcn%2Fui-000000?logo=shadcnui&logoColor=white)](https://ui.shadcn.com/) + ## Contributing @@ -88,11 +121,10 @@ See the [CONTRIBUTING.md](CONTRIBUTING.md) for instructions and code of conduct. See tips and motivation under `docs`: [docs/cookbook/README.md](docs/cookbook/README.md). -## Contact Us +## Follow Us +- [![Avi Twitter](https://img.shields.io/badge/Avi-@avimakesrobots-555?logo=x)](https://x.com/avimakesrobots) - [![Kiet Twitter](https://img.shields.io/badge/Kiet-@flyakiet-555?logo=x)](https://x.com/flyakiet) - [![Satya Twitter](https://img.shields.io/badge/Satya-@saddle_paddle-555?logo=x)](https://x.com/saddle_paddle) -- [![Avi Twitter](https://img.shields.io/badge/Avi-@avimakesrobots-555?logo=x)](https://x.com/avimakesrobots) - ## License @@ -114,7 +146,7 @@ information. [issues-shield]: https://img.shields.io/github/issues/superset-sh/studio.svg?style=for-the-badge [issues-url]: https://github.com/superset-sh/superset/issues [license-shield]: https://img.shields.io/github/license/superset-sh/studio.svg?style=for-the-badge -[license-url]: https://github.com/superset-sh/superset/blob/master/LICENSE.txt +[license-url]: ./LICENSE.txt [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?logo=linkedin&colorB=555 [linkedin-url]: https://www.linkedin.com/company/superset-sh [twitter-shield]: https://img.shields.io/badge/-Twitter-black?logo=x&colorB=555 @@ -129,6 +161,4 @@ information. [Electron-url]: https://www.electronjs.org/ [Vite.js]: https://img.shields.io/badge/vite-%23646CFF.svg?logo=vite&logoColor=white [Vite-url]: https://vitejs.dev/ -[product-screenshot]: assets/brand.png -[weave-shield]: https://img.shields.io/endpoint?url=https%3A%2F%2Fapp.workweave.ai%2Fapi%2Frepository%2Fbadge%2Forg_pWcXBHJo3Li2Te2Y4WkCPA33%2F820087727&cacheSeconds=3600&labelColor=#131313 -[weave-url]: https://app.workweave.ai/reports/repository/org_pWcXBHJo3Li2Te2Y4WkCPA33/820087727 +[product-screenshot]: assets/brand.png \ No newline at end of file diff --git a/apps/desktop/electron.vite.config.ts b/apps/desktop/electron.vite.config.ts index c175c472b26..ad9e7280a6c 100644 --- a/apps/desktop/electron.vite.config.ts +++ b/apps/desktop/electron.vite.config.ts @@ -68,9 +68,6 @@ export default defineConfig({ define: { "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV), "process.platform": JSON.stringify(process.platform), - "import.meta.env.ENABLE_NEW_UI": JSON.stringify( - process.env.ENABLE_NEW_UI || "false", - ), "import.meta.env.DEV_SERVER_PORT": JSON.stringify(DEV_SERVER_PORT), }, diff --git a/apps/desktop/index.d.ts b/apps/desktop/index.d.ts index 77ded4689d8..092162739d2 100644 --- a/apps/desktop/index.d.ts +++ b/apps/desktop/index.d.ts @@ -5,7 +5,6 @@ import type { WebviewTag } from "electron"; interface ImportMetaEnv { readonly DEV_SERVER_PORT?: string; - readonly ENABLE_NEW_UI?: string; } // biome-ignore lint/correctness/noUnusedVariables: Augments global import.meta type for Vite diff --git a/apps/desktop/package.json b/apps/desktop/package.json index b9924261735..f64eb142d6f 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -20,7 +20,7 @@ "compile:app": "electron-vite build", "copy:native-modules": "bun run scripts/copy-native-modules.ts", "prebuild": "bun run clean:dev && bun run compile:app && bun run copy:native-modules", - "build": "electron-builder", + "build": "cross-env CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder", "prepackage": "bun run copy:native-modules", "package": "electron-builder --config electron-builder.ts", "install:deps": "electron-builder install-app-deps", diff --git a/assets/create-tabs.mp4 b/assets/create-tabs.mp4 new file mode 100644 index 00000000000..3fbd933f597 Binary files /dev/null and b/assets/create-tabs.mp4 differ diff --git a/assets/create-worktree.mp4 b/assets/create-worktree.mp4 new file mode 100644 index 00000000000..1d78161abf3 Binary files /dev/null and b/assets/create-worktree.mp4 differ diff --git a/assets/notifs.png b/assets/notifs.png new file mode 100644 index 00000000000..bf43f9c4a9d Binary files /dev/null and b/assets/notifs.png differ diff --git a/package.json b/package.json index 4522fba751f..4d462ee6431 100644 --- a/package.json +++ b/package.json @@ -15,14 +15,14 @@ "packageManager": "bun@1.3.0", "private": true, "scripts": { - "dev": "turbo dev", - "dev:desktop": "turbo dev --filter=@superset/desktop", + "dev": "turbo dev --filter=@superset/desktop", + "dev:all": "turbo dev", "dev:docs": "turbo dev --filter=@superset/docs", "dev:blog": "turbo dev --filter=@superset/blog", "dev:cli": "turbo dev --filter=@superset/cli", "dev:website": "turbo dev --filter=@superset/website", + "build": "turbo build --filter=@superset/desktop", "test": "turbo test", - "build": "turbo build --filter=!@superset/website", "db:generate": "turbo db:generate", "db:push": "cd packages/db && bun db:push", "db:seed": "cd packages/db && bun db:seed", diff --git a/update-port.sh b/update-port.sh deleted file mode 100755 index 4719239c1a0..00000000000 --- a/update-port.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# DEPRECATED: This script is no longer needed for port management. -# Ports are now automatically managed by the Electron app. -# This script is kept for backward compatibility but does nothing useful. -# -# The app automatically finds available ports (4927-4999) and persists -# them in ~/.superset/dev-port.json - -set -e - -echo "⚠️ Note: Port management is now automatic. This script is deprecated." -echo " The app will automatically select an available port when started." -echo " No manual port configuration is needed."