Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,16 @@ Closes #<!-- issue number -->

-
-
-

---
- ***

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix horizontal rule style for markdownlint compliance.

The *** rule violates MD035; the rest of this file uses ---. Align to --- to prevent lint warnings and maintain consistency.

- ***
+ ---
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- ***
---
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 32-32: Horizontal rule style
Expected: ---; Actual: ***

(MD035, hr-style)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/PULL_REQUEST_TEMPLATE.md at line 32, The markdown horizontal rule in
the pull request template uses a style that violates markdownlint MD035; update
the rule in the PR template to match the existing `---` convention used
elsewhere in the file. Make this change in the template content around the
horizontal rule so the markdownlint check passes and the file stays consistent.

Source: Linters/SAST tools


## Screenshots / Recordings

<!-- For UI changes, attach before/after screenshots or a screen recording. -->
<!-- Delete this section if not applicable. -->

| Before | After |
|---|---|
| | |
| ------ | ----- |
| | |

---

Expand All @@ -56,6 +54,7 @@ Closes #<!-- issue number -->
- [ ] Tested edge cases

**Test environment:**

- OS:
- Node:
- Browser (if applicable):
Expand Down
11 changes: 1 addition & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ concurrency:

env:
NODE_VERSION: "22.15.1"
PNPM_VERSION: "10.13.1"

jobs:
lint:
Expand All @@ -29,8 +28,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v4
Expand All @@ -53,8 +50,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v4
Expand All @@ -78,8 +73,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v4
Expand Down Expand Up @@ -110,8 +103,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v4
Expand All @@ -123,4 +114,4 @@ jobs:
run: pnpm install --frozen-lockfile

- name: Check formatting
run: pnpm format --check
run: pnpm exec prettier --check "**/*.{ts,tsx,js,mjs,jsx,json,md,yaml,yml}" --ignore-path .prettierignore
2 changes: 0 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: "10.13.1"

- name: Setup Node.js
uses: actions/setup-node@v4
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ on:

env:
NODE_VERSION: "22.15.1"
PNPM_VERSION: "10.13.1"

permissions:
contents: write
Expand Down Expand Up @@ -60,8 +59,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v4
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ jobs:
This issue has been automatically closed due to inactivity.
If you believe this is still relevant, please open a new issue with updated information.
close-issue-reason: not_planned

# Pull Requests
days-before-pr-stale: 14
days-before-pr-close: 7
Expand Down
2 changes: 2 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<!-- BEGIN:nextjs-agent-rules -->

# This is NOT the Next.js you know

This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` before writing any code. Heed deprecation notices.

<!-- END:nextjs-agent-rules -->
29 changes: 28 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

---

## [0.1.1] - 2026-06-28

### Fixed

- **CI: pnpm version conflict** — Removed hardcoded `PNPM_VERSION: "10.13.1"` env var
from `ci.yml`, `release.yml`, and `codeql.yml`. `pnpm/action-setup@v4` now reads the
version directly from `packageManager` in `package.json` (`pnpm@10.33.4`), eliminating
the `ERR_PNPM_BAD_PM_VERSION` error that caused all CI runs to fail on Setup pnpm step.
- **CI: format-check command** — Replaced `pnpm format --check` (which incorrectly passed
`--check` to Turbo, an invalid flag) with `pnpm exec prettier --check` to invoke Prettier
directly, making the Format Check job functional.
- **CI: Dependabot PR title failures** — Added `if: github.actor != 'dependabot[bot]'`
guard to `pr-title.yml` so Conventional Commits validation is skipped on automated
Dependabot PRs, which use their own title format.
- **Formatting** — Applied Prettier auto-formatting across 18 files to satisfy the now-
working format-check CI job. No logic changes — whitespace, quotes, and trailing newlines only.

---

## [0.1.0] - 2026-06-28

### Overview
Expand All @@ -22,13 +41,15 @@ Initial release of **Echo** — an enterprise-grade full-stack monorepo platform
### Added

#### Monorepo Architecture

- Initialized Turborepo 2 monorepo with workspace dependency graph and parallel task execution
- Configured `turbo.json` with `build`, `dev`, `lint`, `typecheck`, and `format` task pipelines
- Set up `pnpm-workspace.yaml` with `apps/*` and `packages/*` glob patterns
- Pinned `packageManager` to `pnpm@10.33.4` in root `package.json`
- Set Node.js engine requirement `>=20` in root `package.json`

#### Applications

- **`apps/web`** — Next.js 16 (App Router) web application
- Configured with Turbopack (`next dev --turbopack`) for fast local development
- React 19.2.4 with Server Components support enabled
Expand All @@ -41,6 +62,7 @@ Initial release of **Echo** — an enterprise-grade full-stack monorepo platform
- **`apps/widget`** — Embeddable widget application scaffold

#### Shared Packages

- **`packages/ui`** — Shared component library
- Built on shadcn/ui primitives and Radix UI
- Nova preset (Geist font + Lucide icons)
Expand All @@ -58,13 +80,15 @@ Initial release of **Echo** — an enterprise-grade full-stack monorepo platform
- `react-library.json` — Shared React library settings

#### Developer Tooling

- Prettier 3.8.3 with `prettier-plugin-tailwindcss` for class sorting
- `.prettierrc` and `.prettierignore` at repository root
- `.eslintrc.js` at repository root
- `.npmrc` for pnpm configuration
- `.gitignore` covering Node.js, Next.js, Turborepo, OS, and editor artifacts

#### GitHub Repository Governance

- **`LICENSE`** — MIT License (Copyright 2026 Rishikesh Palande)
- **`README.md`** — Full project documentation including:
- CI, CodeQL, license, Node, pnpm, TypeScript, Next.js, Turborepo, Tailwind, and PRs badges
Expand Down Expand Up @@ -100,6 +124,7 @@ Initial release of **Echo** — an enterprise-grade full-stack monorepo platform
- Automated tooling inventory (CodeQL, Dependabot, Secret Scanning, Branch Protection)

#### GitHub Actions Workflows

- **`ci.yml`** — Continuous Integration pipeline
- Triggers on push and PR to `main` and `develop`
- Concurrent run cancellation to avoid redundant builds
Expand Down Expand Up @@ -130,6 +155,7 @@ Initial release of **Echo** — an enterprise-grade full-stack monorepo platform
- Auto-clears failure comment when title is corrected

#### GitHub Configuration Files

- **`.github/CODEOWNERS`** — Automatic review assignment for all paths, with special entries for workflows and security files
- **`.github/dependabot.yml`** — Automated dependency updates
- 5 update targets: root, `apps/web`, `apps/widget`, `packages/ui`, GitHub Actions
Expand All @@ -156,5 +182,6 @@ Initial release of **Echo** — an enterprise-grade full-stack monorepo platform

---

[Unreleased]: https://github.com/RISHII7/echo/compare/v0.1.0...HEAD
[Unreleased]: https://github.com/RISHII7/echo/compare/v0.1.1...HEAD
[0.1.1]: https://github.com/RISHII7/echo/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/RISHII7/echo/releases/tag/v0.1.0
81 changes: 41 additions & 40 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,11 @@ By participating, you agree to uphold our [Code of Conduct](CODE_OF_CONDUCT.md).

### Prerequisites

| Tool | Version |
|---|---|
| Tool | Version |
| ------- | ------------ |
| Node.js | `>= 22.15.1` |
| pnpm | `>= 10.13.1` |
| Git | Latest |
| pnpm | `>= 10.13.1` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Update pnpm prerequisite version to match package.json.

Shows >= 10.13.1, but package.json specifies pnpm@10.33.4. Align with the actual packageManager version to prevent setup issues.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CONTRIBUTING.md` at line 64, The pnpm prerequisite in the contributing docs
is out of sync with the project’s actual package manager version. Update the
pnpm requirement in CONTRIBUTING.md to match the version declared in
package.json’s packageManager field, and keep the documentation aligned with
that exact pnpm version so setup guidance stays consistent.

| Git | Latest |

### Recommended Setup

Expand Down Expand Up @@ -135,14 +135,14 @@ For **significant changes** (new features, breaking changes, architectural decis

All branches must follow this naming convention:

| Type | Pattern | Example |
|---|---|---|
| Feature | `feature/<short-description>` | `feature/user-auth` |
| Bug fix | `fix/<short-description>` | `fix/button-focus-ring` |
| Documentation | `docs/<short-description>` | `docs/api-reference` |
| Chore | `chore/<short-description>` | `chore/update-deps` |
| Hotfix | `hotfix/<short-description>` | `hotfix/critical-xss` |
| Release | `release/<version>` | `release/1.2.0` |
| Type | Pattern | Example |
| ------------- | ----------------------------- | ----------------------- |
| Feature | `feature/<short-description>` | `feature/user-auth` |
| Bug fix | `fix/<short-description>` | `fix/button-focus-ring` |
| Documentation | `docs/<short-description>` | `docs/api-reference` |
| Chore | `chore/<short-description>` | `chore/update-deps` |
| Hotfix | `hotfix/<short-description>` | `hotfix/critical-xss` |
| Release | `release/<version>` | `release/1.2.0` |

**Rules:**

Expand Down Expand Up @@ -178,19 +178,19 @@ This project strictly follows [Conventional Commits](https://www.conventionalcom

### Types

| Type | When to Use |
|---|---|
| `feat` | Adds a new feature (triggers minor version bump) |
| `fix` | Fixes a bug (triggers patch version bump) |
| `docs` | Documentation only changes |
| `style` | Formatting, whitespace — no logic change |
| Type | When to Use |
| ---------- | ------------------------------------------------------- |
| `feat` | Adds a new feature (triggers minor version bump) |
| `fix` | Fixes a bug (triggers patch version bump) |
| `docs` | Documentation only changes |
| `style` | Formatting, whitespace — no logic change |
| `refactor` | Code change that neither fixes a bug nor adds a feature |
| `perf` | Improves performance |
| `test` | Adding or updating tests |
| `build` | Changes to build system or dependencies |
| `ci` | Changes to CI configuration |
| `chore` | Other changes that don't modify src or test files |
| `revert` | Reverts a previous commit |
| `perf` | Improves performance |
| `test` | Adding or updating tests |
| `build` | Changes to build system or dependencies |
| `ci` | Changes to CI configuration |
| `chore` | Other changes that don't modify src or test files |
| `revert` | Reverts a previous commit |

### Scopes

Expand Down Expand Up @@ -257,11 +257,11 @@ Keep PRs focused and small. A PR that touches fewer files is easier and faster t

### Targeting the Correct Branch

| Change Type | Target Branch |
|---|---|
| Features, fixes, docs | `develop` |
| Change Type | Target Branch |
| --------------------------- | --------------- |
| Features, fixes, docs | `develop` |
| Critical production patches | `main` (hotfix) |
| Release preparation | `develop` |
| Release preparation | `develop` |

---

Expand All @@ -283,14 +283,14 @@ Keep PRs focused and small. A PR that touches fewer files is easier and faster t

### Naming

| Entity | Convention | Example |
|---|---|---|
| Files | `kebab-case` | `user-profile.tsx` |
| Components | `PascalCase` | `UserProfile` |
| Hooks | `camelCase` with `use` prefix | `useUserProfile` |
| Utilities | `camelCase` | `formatDate` |
| Constants | `UPPER_SNAKE_CASE` | `MAX_RETRY_COUNT` |
| Types/Interfaces | `PascalCase` | `UserProfileProps` |
| Entity | Convention | Example |
| ---------------- | ----------------------------- | ------------------ |
| Files | `kebab-case` | `user-profile.tsx` |
| Components | `PascalCase` | `UserProfile` |
| Hooks | `camelCase` with `use` prefix | `useUserProfile` |
| Utilities | `camelCase` | `formatDate` |
| Constants | `UPPER_SNAKE_CASE` | `MAX_RETRY_COUNT` |
| Types/Interfaces | `PascalCase` | `UserProfileProps` |

### Formatting

Expand Down Expand Up @@ -329,13 +329,14 @@ pnpm test:coverage # With coverage report

Releases are managed by maintainers following [Semantic Versioning](https://semver.org):

| Change | Version Bump |
|---|---|
| `BREAKING CHANGE` | Major (`1.0.0` → `2.0.0`) |
| `feat` | Minor (`1.0.0` → `1.1.0`) |
| Change | Version Bump |
| --------------------- | ------------------------- |
| `BREAKING CHANGE` | Major (`1.0.0` → `2.0.0`) |
| `feat` | Minor (`1.0.0` → `1.1.0`) |
| `fix`, `perf`, others | Patch (`1.0.0` → `1.0.1`) |

Releases are created by:

1. Merging `develop` into `main`
2. Pushing a version tag (`v1.2.3`)
3. The release workflow automatically creates the GitHub Release with generated notes
Expand Down
Loading
Loading