Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
1e0575b
fix: change secret name to GEMINI_KEY
swadhinbiswas Jul 10, 2026
5905356
feat: upgrade AI code reviewer to Gemini 3.5 Flash using official SDK
swadhinbiswas Jul 10, 2026
f1b954b
fix: use snake_case for thinking_level parameter
swadhinbiswas Jul 10, 2026
c3ad530
feat: switch AI reviewer from Gemini to Mistral Agent
swadhinbiswas Jul 10, 2026
35ec7c5
fix: add missing bun install step to AI reviewer workflow
swadhinbiswas Jul 10, 2026
0b857d5
fix: resolve AI review duplication and GenAI config issues
swadhinbiswas Jul 10, 2026
5b60c23
fix: require all CI jobs in branch protection and fix NPM provenance …
swadhinbiswas Jul 10, 2026
e00f76e
fix(ci): correct unresolved job dependency perf -> performance
swadhinbiswas Jul 10, 2026
e800281
fix(lint): resolve typescript strict typing errors and unused variables
swadhinbiswas Jul 10, 2026
9a407e5
fix(perf): respect SKIP_REDIS_CHECK and run baseline on built server
swadhinbiswas Jul 10, 2026
f6c4a97
fix(health): ensure storage directory exists before checking access
swadhinbiswas Jul 10, 2026
8786651
test: fix health route unit test mock for fs.mkdir
swadhinbiswas Jul 10, 2026
20ab9f4
fix(health): use proper getDatabase to fix 503 error on health endpoint
swadhinbiswas Jul 10, 2026
9364348
ci: add server warmup curls before running perf tests
swadhinbiswas Jul 10, 2026
a6268f5
ci: disable rate limiter during perf baseline check
swadhinbiswas Jul 10, 2026
2925d70
feat: add AI code reviewer using Gemini API (#68)
swadhinbiswas Jul 10, 2026
381467d
fix: comprehensive UI, docs, security, and deployment improvements
Jul 14, 2026
5fa5633
Merge remote-tracking branch 'origin/main' into feature/ai-code-reviewer
Jul 14, 2026
6ecf049
docs: rewrite README to be concise and professional
Jul 14, 2026
3116958
fix: resolve CI failures - lint errors, docs parity, type casts
Jul 14, 2026
a198b6b
Feature/ai code reviewer (#69)
swadhinbiswas Jul 14, 2026
068fffe
fix: update bun.lock and fix ThemeToggle type error
Jul 14, 2026
5913257
fix: resolve ThemeToggle merge conflict
Jul 14, 2026
f589e00
fix: resolve ThemeToggle merge conflict markers
Jul 14, 2026
ae29b3b
fix: resolve test failures - markdown, auth, admin-stats
Jul 14, 2026
4fff5fb
fix: resolve E2E test failures
Jul 15, 2026
d8121f4
fix: remove trailing garbage characters from full-flow.spec.ts
swadhinbiswas Jul 15, 2026
e00d21c
fix: resolve E2E test failures
swadhinbiswas Jul 15, 2026
270b795
Merge pull request #70 from swadhinbiswas/feature/ai-code-reviewer
swadhinbiswas Jul 15, 2026
e0b3681
ci: suppress Node 20 deprecation warning in docker publish
swadhinbiswas Jul 15, 2026
78e882e
fix: optimize Dockerfile - use --production for deps, slim base image
swadhinbiswas Jul 15, 2026
0d3c59c
docs: rich professional README with video placeholder and complete fe…
swadhinbiswas Jul 16, 2026
dc3b077
🤯fix: remove duplicate HTML structure from api-docs page causing buil…
swadhinbiswas Jul 16, 2026
bb98ea3
docs: add Docker Hub description with logo and setup instructions
swadhinbiswas Jul 16, 2026
e4e0855
fix:🥟 replace @apply with plain CSS in layout style blocks
swadhinbiswas Jul 16, 2026
2f3dec7
fix: move admin styles to globals.css, remove all is:global style blo…
swadhinbiswas Jul 16, 2026
ae6ebe8
Merge branch 'main' into feature/ai-code-reviewer
swadhinbiswas Jul 16, 2026
65baa16
fix: remove all CSS style blocks from pages causing Docker build failure
swadhinbiswas Jul 16, 2026
2f87bd7
fix: remove highlight.js CSS import causing Docker build failure
swadhinbiswas Jul 16, 2026
e60345c
fix: remove last style block from BaseLayout, move fonts/container to…
swadhinbiswas Jul 16, 2026
ebed9c1
fix: use postcss transformer to resolve vite:css build failure
swadhinbiswas Jul 17, 2026
159a3a5
fix: pin postcss to 8.4.x to fix Docker build failure
swadhinbiswas Jul 17, 2026
288fa63
fix: resolve docker build error and overhaul UI with premium github-l…
swadhinbiswas Jul 17, 2026
147c6fd
fix: resolve CSRF validation error when creating a repository
swadhinbiswas Jul 17, 2026
66af149
fix: implement global CSRF fetch interceptor
swadhinbiswas Jul 17, 2026
d29526a
fix: inject INTERNAL_HOOK_SECRET and REMOTE_USER for internal git pushes
swadhinbiswas Jul 17, 2026
c3acbd3
fix: use correct fallback port for internal git hooks
swadhinbiswas Jul 17, 2026
b899c67
fix: internal git hooks should always use 127.0.0.1 for local API calls
swadhinbiswas Jul 17, 2026
de6ba86
📦 chore: update .cron-lock
swadhinbiswas Jul 24, 2026
a5fc437
📝 docs: update README
swadhinbiswas Jul 24, 2026
a69922e
📝 docs: update notimplemented
swadhinbiswas Jul 24, 2026
00dd7f1
✨ feat: improve IssueDetail.tsx
swadhinbiswas Jul 24, 2026
8363805
✨ feat: update Header.astro page
swadhinbiswas Jul 24, 2026
9004b79
✨ feat: improve MilestonesList.tsx
swadhinbiswas Jul 24, 2026
9f9cf5d
✨ feat: improve NewMilestoneForm.tsx
swadhinbiswas Jul 24, 2026
9d59de7
✨ feat: improve CustomPRState.tsx
swadhinbiswas Jul 24, 2026
8a5ae62
✨ feat: improve InlineDiffReview.tsx
swadhinbiswas Jul 24, 2026
8dcbd4e
✨ feat: improve PullRequestsList.tsx
swadhinbiswas Jul 24, 2026
ed4f8fd
✨ feat: improve RepoSettings.tsx
swadhinbiswas Jul 24, 2026
aa542bc
✨ feat: improve WorkflowSettings.tsx
swadhinbiswas Jul 24, 2026
a8ef223
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
4647d12
♻️ refactor: update ci-gates.ts
swadhinbiswas Jul 24, 2026
2816e0e
♻️ refactor: update codeowners-enforcement.ts
swadhinbiswas Jul 24, 2026
c00e371
♻️ refactor: update git.ts
swadhinbiswas Jul 24, 2026
5c45620
♻️ refactor: update middleware.ts
swadhinbiswas Jul 24, 2026
8674de0
♻️ refactor: update csrf.ts
swadhinbiswas Jul 24, 2026
e27c69f
✨ feat: update [...path].astro page
swadhinbiswas Jul 24, 2026
173e539
✨ feat: update [sha].astro page
swadhinbiswas Jul 24, 2026
23b1011
✨ feat: update new.astro page
swadhinbiswas Jul 24, 2026
4c406a0
✨ feat: update [number].astro page
swadhinbiswas Jul 24, 2026
a2678d7
✨ feat: update deploy-keys.astro page
swadhinbiswas Jul 24, 2026
c3d05c4
✨ feat: update [...ref].astro page
swadhinbiswas Jul 24, 2026
5f99cf3
✨ feat: update [...path].astro page
swadhinbiswas Jul 24, 2026
d60ea80
✨ feat: update index.astro page
swadhinbiswas Jul 24, 2026
a198c73
♻️ refactor: update logout.ts
swadhinbiswas Jul 24, 2026
9989f4b
♻️ refactor: update register.ts
swadhinbiswas Jul 24, 2026
61d6e0c
♻️ refactor: update [branch].ts
swadhinbiswas Jul 24, 2026
1c8622f
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
6c3be43
♻️ refactor: update [userId].ts
swadhinbiswas Jul 24, 2026
5603996
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
32a023f
♻️ refactor: update push.ts
swadhinbiswas Jul 24, 2026
36377f7
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
962fa93
♻️ refactor: update [number].ts
swadhinbiswas Jul 24, 2026
855904e
♻️ refactor: update comments.ts
swadhinbiswas Jul 24, 2026
c68bdde
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
ec58f49
♻️ refactor: update [labelId].ts
swadhinbiswas Jul 24, 2026
5309f84
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
31ca9ff
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
ea46cef
♻️ refactor: update protection.ts
swadhinbiswas Jul 24, 2026
6d09753
♻️ refactor: update code-quality.ts
swadhinbiswas Jul 24, 2026
10229ec
♻️ refactor: update codeowner-enforcement.ts
swadhinbiswas Jul 24, 2026
c68c525
♻️ refactor: update comments.ts
swadhinbiswas Jul 24, 2026
eb43872
♻️ refactor: update file-approvals.ts
swadhinbiswas Jul 24, 2026
e541e04
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
9693b6f
♻️ refactor: update merge.ts
swadhinbiswas Jul 24, 2026
61297cb
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
8aac430
♻️ refactor: update issue-statuses.ts
swadhinbiswas Jul 24, 2026
56a9aff
♻️ refactor: update path-permissions.ts
swadhinbiswas Jul 24, 2026
84bfa47
♻️ refactor: update states.ts
swadhinbiswas Jul 24, 2026
3e37e83
♻️ refactor: update [id].ts
swadhinbiswas Jul 24, 2026
5688a8b
♻️ refactor: update test.ts
swadhinbiswas Jul 24, 2026
5c6ee97
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
9852399
♻️ refactor: update [slug].ts
swadhinbiswas Jul 24, 2026
e25f497
♻️ refactor: update [id].ts
swadhinbiswas Jul 24, 2026
c8223ec
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
8ccc4ba
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
15788e8
♻️ refactor: update [stackId].ts
swadhinbiswas Jul 24, 2026
3b3ab75
♻️ refactor: update sync.ts
swadhinbiswas Jul 24, 2026
413aaa1
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
d35e62d
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
67c4584
♻️ refactor: update user.ts
swadhinbiswas Jul 24, 2026
f9aba21
♻️ refactor: update [id].ts
swadhinbiswas Jul 24, 2026
8fd7f76
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
795e3da
♻️ refactor: update index.ts
swadhinbiswas Jul 24, 2026
f90bdd2
♻️ refactor: update metrics.ts
swadhinbiswas Jul 24, 2026
67283e9
♻️ refactor: update [id].ts
swadhinbiswas Jul 24, 2026
627260e
♻️ refactor: update metrics.ts
swadhinbiswas Jul 24, 2026
76746f9
✨ feat: update cli.astro page
swadhinbiswas Jul 24, 2026
45e0597
♻️ refactor: update refs.ts
swadhinbiswas Jul 24, 2026
ba5ff9f
✨ feat: update ai-review-rules.astro page
swadhinbiswas Jul 24, 2026
ce0ba87
✨ feat: update ssh-keys.astro page
swadhinbiswas Jul 24, 2026
641fef4
🎨 style: improve globals.css
swadhinbiswas Jul 24, 2026
9c385ab
♻️ refactor: update openapi-pulls-parity.test.ts
swadhinbiswas Jul 24, 2026
eddb415
📦 chore: update plans
swadhinbiswas Jul 24, 2026
ea811be
📝 docs: update cli
swadhinbiswas Jul 24, 2026
1938743
📝 docs: update ssh-keys
swadhinbiswas Jul 24, 2026
4fae0b9
📦 chore: update smartcommit.sh
swadhinbiswas Jul 24, 2026
d0e310a
✨ feat: improve CodeReviewPanel.tsx
swadhinbiswas Jul 24, 2026
0a09d9d
♻️ refactor: update review-analysis.ts
swadhinbiswas Jul 24, 2026
ccc338f
📦 chore: update review
swadhinbiswas Jul 24, 2026
70ffd48
📦 chore: update [id]
swadhinbiswas Jul 24, 2026
1435dfa
🚀 api: update milestones
swadhinbiswas Jul 24, 2026
9219247
♻️ refactor: update analysis.ts
swadhinbiswas Jul 24, 2026
0257552
feat(enterprise): add SAML 2.0, SCIM 2.0, OCI Registry, NPM package e…
swadhinbiswas Jul 30, 2026
f1c211c
fix(ci): resolve vite import issue in astro.config.mjs for GitHub Act…
swadhinbiswas Jul 30, 2026
3e11115
fix(security): update package overrides and known accepted vulnerabil…
swadhinbiswas Jul 30, 2026
3237dfc
fix(ci): update bun.lock to synchronize package.json and fix frozen-l…
swadhinbiswas Jul 30, 2026
eb28d38
fix(security): resolve EOVERRIDE conflict and add brace-expansion to …
swadhinbiswas Jul 30, 2026
ceffb76
feat: comprehensive UI overhaul, security hardening, docs, and deploy…
swadhinbiswas Jul 31, 2026
6f4e9a5
fix: resolve accessibility color contrast and theme toggle test failures
swadhinbiswas Jul 31, 2026
cf018e0
merge: resolve CSS conflicts with main (keep a11y primary/ring fix at…
swadhinbiswas Jul 31, 2026
b1978ff
fix: add retry loop and cache clearing to prod-deps Docker stage
swadhinbiswas Jul 31, 2026
277fe7b
ci: use BuildKit with GHA cache for container-scan Docker build
swadhinbiswas Jul 31, 2026
6254919
fix: harden production deployments (secrets, compose, migrations, met…
swadhinbiswas Aug 2, 2026
1ee901b
fix: remediate GitGuardian secret and fix npm publish for new package
swadhinbiswas Aug 3, 2026
614424d
fix: stop dotenv and config.json from overriding CI DATABASE_URL
swadhinbiswas Aug 5, 2026
980ced7
Resolve merge conflicts with main
Copilot Aug 5, 2026
beefd59
fix: Dockerfile.worker - copy source from build context, not deps stage
swadhinbiswas Aug 5, 2026
7a02095
fix(git): smart-HTTP receive-pack protocol + post-receive hooks
swadhinbiswas Aug 14, 2026
5b610e9
feat(ci): production-grade pipeline execution + runs persistence
swadhinbiswas Aug 14, 2026
fbeaab1
fix(config): stop .env from shadowing real environment variables
swadhinbiswas Aug 14, 2026
613ec71
feat(security): OAuth provider, fine-grained PATs, orgs, teams, SAML,…
swadhinbiswas Aug 14, 2026
43eef80
feat(collab): wire previously-dead collaboration features
swadhinbiswas Aug 14, 2026
11391af
feat(dx): GraphQL expansion, OpenAPI 100% coverage, UI completion
swadhinbiswas Aug 14, 2026
f0bd058
chore(gates): real quality gates, drills, contract/smoke suites, vers…
swadhinbiswas Aug 14, 2026
f9cd0b9
chore(authz): propagate PAT scopes through repo permission call sites
swadhinbiswas Aug 14, 2026
1cab620
feat(ci): parallel job waves + GITHUB_OUTPUT/GITHUB_ENV
swadhinbiswas Aug 15, 2026
26a6b5e
test(authz): permission lattice matrix + scope implication
swadhinbiswas Aug 15, 2026
962ac21
feat(obs): per-request correlation IDs; fix org-owned repos in list e…
swadhinbiswas Aug 15, 2026
102caba
fix(platform): Redis static imports + org-owned repos across global p…
swadhinbiswas Aug 15, 2026
0d9ceff
test(e2e): commit the full-stack proof script
swadhinbiswas Aug 15, 2026
960d787
feat(ci): docker actions on self-hosted runners + repo transfer UI
swadhinbiswas Aug 15, 2026
4ee9c76
feat(oauth): refresh tokens for the provider flow
swadhinbiswas Aug 15, 2026
2731810
feat(registry): complete npm registry protocol (login, whoami, publis…
swadhinbiswas Aug 15, 2026
daf6ef3
release: version 1.2.0 (production-readiness release)
swadhinbiswas Aug 15, 2026
47d1c07
docs: execution log for readiness closure batch
swadhinbiswas Aug 15, 2026
7251c1a
chore(cli): lockfile version sync
swadhinbiswas Aug 15, 2026
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
2 changes: 1 addition & 1 deletion .astro/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"_variables": {
"lastUpdateCheck": 1783961044818
"lastUpdateCheck": 1785773647919
}
}
6 changes: 1 addition & 5 deletions .github/rulesets/main-branch-ruleset.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,7 @@
"integration_id": 15368
},
{
"context": "Unit Tests (Lane: unit)",
"integration_id": 15368
},
{
"context": "Integration Tests (Lane: integration)",
"context": "Unit & Integration Tests",
"integration_id": 15368
},
{
Expand Down
131 changes: 129 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,56 @@ jobs:
- name: Check docs parity
run: bun run docs:parity

wiring-audit:
name: Wiring Audit
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: |
for i in 1 2 3; do
bun install --frozen-lockfile && exit 0
echo "bun install attempt $i failed, retrying in 10s..."
sleep 10
done
echo "::error::bun install failed after 3 attempts"
exit 1

- name: Run wiring audit
run: bun run wiring:audit

openapi-coverage:
name: OpenAPI Coverage
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: |
for i in 1 2 3; do
bun install --frozen-lockfile && exit 0
echo "bun install attempt $i failed, retrying in 10s..."
sleep 10
done
echo "::error::bun install failed after 3 attempts"
exit 1

- name: Check OpenAPI coverage
run: bun run openapi:coverage
env:
OPENAPI_COVERAGE_THRESHOLD: "60"

# ──────────────────────────────────────────────────
# Stage 2: Security Audit
# ──────────────────────────────────────────────────
Expand Down Expand Up @@ -168,6 +218,62 @@ jobs:
path: coverage/
retention-days: 14

# ──────────────────────────────────────────────────
# Stage 3b: Contract Tests (Lane: contract)
# ──────────────────────────────────────────────────
contract:
name: Contract Tests (Lane: contract)
runs-on: ubuntu-latest
needs: lint
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: |
for i in 1 2 3; do
bun install --frozen-lockfile && exit 0
echo "bun install attempt $i failed, retrying in 10s..."
sleep 10
done
echo "::error::bun install failed after 3 attempts"
exit 1

- name: Run contract tests
run: bun run test:contract

# ──────────────────────────────────────────────────
# Stage 3c: Smoke Tests (Lane: smoke)
# ──────────────────────────────────────────────────
smoke:
name: Smoke Tests (Lane: smoke)
runs-on: ubuntu-latest
needs: lint
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: |
for i in 1 2 3; do
bun install --frozen-lockfile && exit 0
echo "bun install attempt $i failed, retrying in 10s..."
sleep 10
done
echo "::error::bun install failed after 3 attempts"
exit 1

- name: Run smoke tests
run: bun run test:smoke

# ──────────────────────────────────────────────────
# Stage 4: E2E Tests (Playwright)
# ──────────────────────────────────────────────────
Expand Down Expand Up @@ -504,25 +610,46 @@ jobs:
working-directory: cli

- name: Publish to npm
run: npm publish --access public --provenance
working-directory: cli
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
# Check if package version already exists on registry
PKG_NAME=$(node -p "require('./package.json').name")
PKG_VERSION=$(node -p "require('./package.json').version")
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "https://registry.npmjs.org/${PKG_NAME}/${PKG_VERSION}")
if [ "$HTTP_CODE" = "200" ]; then
echo "::warning::Version ${PKG_VERSION} already exists on npm, skipping publish"
exit 0
fi
# First publish of a new package: --provenance requires the package to exist
# so we attempt with provenance first, fall back without it on 404
if npm publish --access public --provenance 2>&1 | tee /tmp/npm-publish.log; then
echo "Published with provenance"
elif grep -q "404" /tmp/npm-publish.log; then
echo "Package not yet on registry, publishing without provenance for initial seed..."
npm publish --access public
fi

# ──────────────────────────────────────────────────
# Quality Gate Summary
# ──────────────────────────────────────────────────
quality-gate:
name: Quality Gate
runs-on: ubuntu-latest
needs: [lint, docs-parity, security, test, e2e, container-scan, sast, performance, build]
needs: [lint, docs-parity, wiring-audit, openapi-coverage, security, test, contract, smoke, e2e, container-scan, sast, performance, build]
if: always()
steps:
- name: Check all gates
run: |
echo "=== Quality Gate Summary ==="
echo "Lint & Typecheck: ${{ needs.lint.result }}"
echo "Docs Parity: ${{ needs.docs-parity.result }}"
echo "Wiring Audit: ${{ needs.wiring-audit.result }}"
echo "OpenAPI Coverage: ${{ needs.openapi-coverage.result }}"
echo "Unit Tests: ${{ needs.test.result }}"
echo "Contract Tests: ${{ needs.contract.result }}"
echo "Smoke Tests: ${{ needs.smoke.result }}"
echo "E2E Tests: ${{ needs.e2e.result }}"
echo "Container Scan: ${{ needs.container-scan.result }}"
echo "SAST: ${{ needs.sast.result }}"
Expand Down
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.2.0] - 2026-08-15

### 🚀 Production Readiness Release
- **Full-stack E2E proof** (`scripts/e2e-proof.sh`, 20 checks): real git push → workflow → CI success (Docker), PR + squash merge, OAuth provider flow, org invites + transfer, org-owned repo APIs — all green against Postgres + Redis.
- **Git protocol fixes** (found by the proof): post-receive hooks now fire (stdin newline + capability stripping), receive-pack status on sideband band 1 with nested pkt-line framing + inner flush — real `git push` completes cleanly.
- **CI engine**: parallel job waves with `needs` ordering, matrix expansion, cron scheduler, GITHUB_OUTPUT/GITHUB_ENV, repo secrets injection, Docker image auto-pull, speculative-build CI execution, docker actions (`uses: docker://`) on self-hosted runners, action resolver for composite actions + checkout.
- **Configuration**: `.env` no longer shadows real environment variables; Redis uses static imports (distributed rate limiting + locks actually active).
- **Collaboration**: issue assignees/milestones/custom-fields/workflow transitions wired, PR labels + assignees + requested-reviewers, draft PRs, merge-method selection, review-thread resolution, @mentions, issue templates, real contribution graph, watch/unwatch.
- **Security**: OAuth provider mode (authorization-code + refresh-token grants, userinfo), fine-grained PAT scopes with implication, GitHub/Google login, org SAML config, org-aware permission resolution everywhere.
- **Organizations**: CRUD + pages, member invites, teams, repo transfer (API + UI), org-owned repos work across all routes/pages.
- **DX**: GraphQL expansion (issues/orgs/labels mutations), OpenAPI 100% coverage (275 routes) with an idempotent generator + CI gate, npm registry protocol completion (login/whoami/publish/metadata/tarballs).
- **Observability**: per-request correlation IDs bound to every log line; OTLP transport for Grafana Cloud.
- **Quality**: authz matrix suite (43 cases, scope-implication fix), multi-instance chaos suite, load baseline green (p95 ≤136ms at 20-concurrency), DR drills, wiring-audit gate, contract/smoke lanes.
- **CLI**: `opencodehub-cli` 1.2.0.

## [1.1.2] - 2026-08-10

### 🛡️ Quality Gates (Phase 0 of production-parity plan)
- **CI lanes**: Added real `Contract Tests (Lane: contract)` and `Smoke Tests (Lane: smoke)` jobs; branch ruleset now requires job names that exist.
- **Contract suite**: New `tests/contract/` — pkt-line protocol, webhook HMAC (GitHub-vector pinned), workflow trigger semantics, OpenAPI shape (27 tests).
- **Smoke suite**: New `tests/smoke/` — boot-critical module wiring (env validation, storage, db, auth, git) (6 tests).
- **Coverage**: vitest now emits `coverage-summary.json` + `lcov.info`; the CI threshold check is no longer a silent no-op.
- **Disaster-recovery drills**: Implemented `drill:backup-restore`, `drill:redis`, `drill:postgres` scripts that the weekly-drills workflow was already calling.
- **Versioning**: Root package unified to 1.1.2 (was 1.0.0), matching the CLI.
- **GitHub-Actions glob fix**: `**` in branch/path filters now spans directories correctly (previously collapsed to a single level); `on: workflow_dispatch` shorthand triggers now work; `!`-negation in `paths:` filters is honored.
- **OpenAPI**: Documented previously-missing core paths (`/repos`, `/repos/{owner}/{repo}/issues`, `/issues/{number}`, `/branches`, `/labels`).

## [1.1.0] - 2026-01-22

### 📚 Documentation (Major Overhaul)
Expand Down
19 changes: 12 additions & 7 deletions Dockerfile.worker
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ RUN for i in 1 2 3; do \
(echo "bun install attempt $i failed, retrying in 10s..." && sleep 10); \
done

# Copy source into a staging layer so COPY --from has the files
FROM base AS source
COPY --from=deps /app/node_modules ./node_modules
COPY . .

# Production image
FROM oven/bun:1 AS runner
WORKDIR /app
Expand All @@ -23,15 +28,15 @@ RUN mkdir -p /data/repositories /data/storage /data/cache && \
chown -R bun:bun /data

# Copy node_modules and source
COPY --from=deps --chown=bun:bun /app/node_modules ./node_modules
COPY --from=deps --chown=bun:bun /app/package.json ./
COPY --from=deps --chown=bun:bun /app/cli ./cli
COPY --from=deps --chown=bun:bun /app/tsconfig.json ./
COPY --from=source --chown=bun:bun /app/node_modules ./node_modules
COPY --from=source --chown=bun:bun /app/package.json ./
COPY --from=source --chown=bun:bun /app/cli ./cli
COPY --from=source --chown=bun:bun /app/tsconfig.json ./

# Copy source files needed for worker
COPY --from=deps --chown=bun:bun /app/src/lib ./src/lib
COPY --from=deps --chown=bun:bun /app/src/db ./src/db
COPY --from=deps --chown=bun:bun /app/scripts/worker.ts ./scripts/worker.ts
COPY --from=source --chown=bun:bun /app/src/lib ./src/lib
COPY --from=source --chown=bun:bun /app/src/db ./src/db
COPY --from=source --chown=bun:bun /app/scripts/worker.ts ./scripts/worker.ts

# Set environment variables
ENV NODE_ENV=production
Expand Down
1 change: 1 addition & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export default defineConfig({
},
ssr: {
noExternal: ["@radix-ui/*"],
external: ["node:async_hooks"],
},
},
});
4 changes: 2 additions & 2 deletions cli/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "opencodehub-cli",
"version": "1.1.2",
"version": "1.2.0",
"description": "Stack-first PR workflows from your terminal - CLI for OpenCodeHub",
"author": "Swadhin Biswas <swadhinbiswas@duck.com>",
"license": "MIT",
Expand Down
Loading
Loading