Skip to content

Add repository import manifest, import script, and revamped Terkix AI launch dashboard#6

Open
Huynhthuongg wants to merge 5 commits into
mainfrom
codex/setup-unified-project-repository-with-ui
Open

Add repository import manifest, import script, and revamped Terkix AI launch dashboard#6
Huynhthuongg wants to merge 5 commits into
mainfrom
codex/setup-unified-project-repository-with-ui

Conversation

@Huynhthuongg

@Huynhthuongg Huynhthuongg commented Jun 13, 2026

Copy link
Copy Markdown
Member

Motivation

  • Provide a way to register and restore a set of external repositories as part of the Terkix/RKIX3 launch plan.
  • Turn the existing IDE shell into a public-facing AI launch dashboard that organizes repositories by lanes (Core, AI, Dashboard, Storage, Deploy, Tools, Docs).
  • Make the import target safe to keep out of git history while keeping a persistent manifest and tools to populate it.

Description

  • Add a checked-in manifest imports/repositories.json plus imports/repositories/.gitkeep and docs imports/README.md and imports/IMPORT_STATUS.md to describe import behavior and status.
  • Add an import script scripts/import-repositories.mjs and wire it into package.json as the import:repos script to clone or update repos into imports/repositories/ with --depth=1 and blob filtering.
  • Update .gitignore to ignore the imported repositories folder while keeping the .gitkeep file.
  • Heavily refactor the dashboard UI in app/(dashboard)/page.tsx to present repository lanes, featured/reference lists, AI repo cards, a public deploy plan, and updated visuals and metadata; also update app/layout.tsx metadata text.
  • Add DEPLOYMENT.md describing a fast path to deploy to Vercel and notes about the production shell and build/check commands.

Testing

  • Ran the importer attempt with npm run import:repos -- --continue-on-error, which executed the new script but failed to clone repositories in this environment due to network restrictions (CONNECT tunnel failed, response 403), so the manifest and tooling were added but the working trees were not populated.

Codex Task


Summary by cubic

Adds a repository import manifest and script to pull 30 external repositories into a gitignored folder, and rebuilds the home screen into a Terkix/RKIX3 launch dashboard with lanes, merge queue, and a public deploy plan for Vercel.

  • New Features

    • Manifest imports/repositories.json with docs (imports/README.md, imports/IMPORT_STATUS.md) to track and restore 30 repos.
    • Importer scripts/import-repositories.mjs, wired as npm run import:repos, clones/updates into imports/repositories/ with --depth=1 and blob filtering; .gitignore ignores the target while keeping .gitkeep.
    • Dashboard overhaul in app/(dashboard)/page.tsx: repository lanes (Core/AI/Dashboard/Storage/Deploy/Tools/Docs), AI module list, merge queue, repo counts, full repo list, and a public link plan; updated metadata in app/layout.tsx.
    • DEPLOYMENT.md adds a fast path to deploy on Vercel with npm run build.
  • Migration

    • Import all repos: npm run import:repos (add --continue-on-error to skip failures).
    • Imported trees live in imports/repositories/ and are not committed to git.
    • Deploy using DEPLOYMENT.md (Vercel Next.js preset, default npm run build, then attach your domain). If network access blocks GitHub clones, run the import on a machine/CI with GitHub access.

Written for commit 4c13aa4. Summary will update on new commits.

Review in cubic

@vercel

vercel Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
terkix-builder Ready Ready Preview, Comment Jun 13, 2026 7:56am
terkix-builder-xgy4 Ready Ready Preview, Comment Jun 13, 2026 7:56am

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

Release Notes

  • New Features

    • Bảng điều khiển đã được chuyển đổi thành bảng công bố AI Terkix với các phần mới bao gồm danh sách repository, các lane triển khai, và kế hoạch liên kết công cộng.
    • Thêm quy trình nhập repository tự động để quản lý các dự án Terkix/RKIX3.
  • Documentation

    • Thêm hướng dẫn triển khai cho các dịch vụ công cộng.
    • Thêm tài liệu về quy trình nhập và trạng thái repository.
  • Chores

    • Cập nhật siêu dữ liệu trang (tiêu đề và mô tả).

Walkthrough

Pull request này thiết lập hệ thống import repositories từ manifest JSON và thiết kế lại dashboard từ dự án Android sang repository lane tracking. Bao gồm script Node.js để clone/update repositories, cập nhật metadata branding, và hướng dẫn triển khai công khai trên Vercel.

Changes

Repository Import Infrastructure

Layer / File(s) Summary
Repository Manifest và Import Script
imports/repositories.json, scripts/import-repositories.mjs, package.json
File manifest định nghĩa repositories với name, url, lane, priority. Script Node.js clone repositories với --depth=1 --filter=blob:none hoặc pull cập nhật, hỗ trợ --continue-on-error để tiếp tục khi lỗi. Script được wiring vào package.json dưới lệnh import:repos.
Git Ignore và Tài Liệu
.gitignore, imports/README.md, imports/IMPORT_STATUS.md
Cấu hình .gitignore bỏ qua /imports/repositories/* để không commit histories lồng nhau. README.md hướng dẫn chạy npm run import:repos với flag tuỳ chọn. IMPORT_STATUS.md ghi lại trạng thái manifest, wiring, và kết quả chạy (kể cả lỗi 403 GitHub access trong container).

AI Launch Dashboard & Branding

Layer / File(s) Summary
Dashboard Data Model và Layout Config
app/(dashboard)/page.tsx (imports, types, data)
Component định nghĩa kiểu Repository và mảng repositories chứa danh sách từ các lane. Objects lanes (với label, icon, accent) và launchSteps cấu hình UI. Các giá trị dẫn xuất featuredRepos, referenceRepos, aiRepos và hàm getLaneCount() tính toán để render.
Dashboard UI Rendering
app/(dashboard)/page.tsx (component rendering)
Component render header "Terkix AI Launch" với link deploy bên ngoài, hero section, card "AI page core" cho aiRepos, stat tiles (imported/merge/reference/AI counts), "Repository lanes" grid, "Public link plan" từ launchSteps, "Merge queue" với priority, và "Full import list" với lane/priority indicators.
Metadata & Deployment Guide
app/layout.tsx, DEPLOYMENT.md
Metadata cập nhật title thành "Terkix AI Launch - RKIX3 Command Center" và description về unified dashboard. DEPLOYMENT.md hướng dẫn triển khai nhanh trên Vercel, liệt kê thành phần production (manifest, script, dashboard, metadata), và ghi chú giới hạn DNS/tài khoản cho .dev/.com domains.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Repositories hop into lanes so bright,
Import scripts dance through the night,
Dashboard blooms from Android's old way,
Terkix AI launches bright as day!
Vercel deploys with a thump-thump-thump,
One config to rule them all—no slump!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed Tiêu đề rõ ràng và cụ thể mô tả ba thay đổi chính của PR: thêm manifest nhập kho, thêm script nhập, và cải tạo bảng điều khiển Terkix AI launch.
Description check ✅ Passed Mô tả PR chi tiết và liên quan trực tiếp đến changeset, bao gồm động lực, mô tả kỹ thuật, và kết quả kiểm tra.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/setup-unified-project-repository-with-ui
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch codex/setup-unified-project-repository-with-ui
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch codex/setup-unified-project-repository-with-ui
  • 🛠️ Aethon

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install failed due to a network error.

Warning

Review ran into problems

🔥 Problems

Linked repositories: Your configuration references 1 linked repositories, but your current plan allows 0. Analyzed ``, skipped Aethon/backend-api.


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.

@kilo-code-bot

kilo-code-bot Bot commented Jun 13, 2026

Copy link
Copy Markdown

Kilo Code Review could not run — your account is out of credits.

Add credits or switch to a free model to enable reviews on this change.

…epository-with-ui

Add repository import manifest and automation
…lytics-pyz4yj

Merge pull request #7 from Huynhthuongg/codex/setup-unified-project-r…
…epository-with-ui

Merge pull request #8 from Huynhthuongg/vercel/install-vercel-web-ana…

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 Prompt for all review comments with 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.

Inline comments:
In `@app/`(dashboard)/page.tsx:
- Around line 23-29: The Repository type currently declares a non-existent field
role which diverges from the upstream manifest and creates duplicate sources of
truth; fix by either (1) adding role to the upstream manifest
(imports/repositories.json) and updating any imports/usages to rely solely on
that manifest so the Repository type (and the repositories array) matches the
manifest schema, or (2) remove role from the static Repository type and instead
import the manifest JSON directly and augment each imported repository with a
computed role inside the component (keep a separate role-mapping lookup and
apply it at render time) so you avoid duplicating the full repositories list;
update the Repository type and the repositories usage to match the chosen
approach.
- Around line 31-242: The hardcoded repositories array in the repositories
constant duplicates the canonical manifest and should be replaced by importing
the manifest and merging any local role metadata; update
app/(dashboard)/page.tsx to remove the inline repositories array and instead
import the JSON (e.g., import repoManifest from 'imports/repositories.json'),
create a small rolesMap keyed by repository name containing the local role
strings, then build repositories = repoManifest.map(r => ({ ...r, role:
rolesMap[r.name] ?? r.role ?? '' })); ensure any new/removed items are handled
automatically and that rolesMap only contains the extra metadata (or move that
metadata into the manifest at source) so you no longer maintain two divergent
lists.

In `@imports/README.md`:
- Line 17: Update the README wording that currently says "full archive" to
accurately reflect the shallow clone performed by the import script (it uses
--depth=1 --filter=blob:none) — replace the phrase "full archive" with something
like "working tree needed to launch shell" (or equivalent) so the doc no longer
implies full git history is restored; ensure the sentence that mentions
restoring the archive is revised to state only the working tree/files required
to run the shell are restored.

In `@scripts/import-repositories.mjs`:
- Around line 35-37: Kiểm tra và đồng bộ remote trước khi gọi git pull: thay vì
chỉ kiểm tra existence của destination/.git, lấy giá trị remote origin bằng
run("git", ["-C", destination, "config", "--get", "remote.origin.url"]) và so
sánh với repo.url; nếu trùng thì tiếp tục với run("git", ["-C", destination,
"pull", "--ff-only"]), còn nếu khác thì xoá/thay thế thư mục destination và
clone lại bằng run("git", ["clone", repo.url, destination"]) (hoặc gọi
run("git", ["-C", destination, "remote", "set-url", "origin", repo.url"]) trước
khi pull nếu bạn muốn giữ lịch sử), đảm bảo dùng biến destination, repo.url và
hàm run để định vị thay đổi.
- Around line 15-21: The run() helper uses spawnSync without a timeout or
disabling Git interactive prompts, which can hang; update run (the function that
calls spawnSync) to merge default options that include a sensible timeout (e.g.,
30_000 ms) and an env that sets GIT_TERMINAL_PROMPT=0 while preserving/merging
any provided options.env so callers can override; ensure stdio and cwd behavior
is preserved and that callers who pass options can still override timeout/env if
needed.
- Around line 11-30: Sanitize and validate repo inputs and make git operations
non-interactive: ensure repo.name is validated/normalized before using it in
path.join(targetRoot, repo.name) (reject or canonicalize values with ..,
absolute paths, or path separators), compute destination using the sanitized
name and recompute destinationLabel from that sanitized path; before running git
-C <destination> pull, verify the existing repo's remote URL (via git -C
<destination> remote get-url origin) matches repo.url from the manifest and
fail/record an error if it differs; update the run function (which wraps
spawnSync) to pass a timeout and set env/git flags to disable interactive
prompts (e.g., GIT_TERMINAL_PROMPT=0) and propagate non-zero statuses so
operations don’t hang (modify run/spawnSync options to include timeout and env),
and record failures into failures when validation or remote mismatch occurs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5f3b8038-af34-4a20-8e38-206cd7a4b035

📥 Commits

Reviewing files that changed from the base of the PR and between 932c64c and 4c13aa4.

📒 Files selected for processing (10)
  • .gitignore
  • DEPLOYMENT.md
  • app/(dashboard)/page.tsx
  • app/layout.tsx
  • imports/IMPORT_STATUS.md
  • imports/README.md
  • imports/repositories.json
  • imports/repositories/.gitkeep
  • package.json
  • scripts/import-repositories.mjs

Comment thread app/(dashboard)/page.tsx
Comment thread app/(dashboard)/page.tsx
Comment thread imports/README.md
Comment thread scripts/import-repositories.mjs
Comment thread scripts/import-repositories.mjs
Comment thread scripts/import-repositories.mjs
…epository-with-ui

Merge pull request #8 from Huynhthuongg/vercel/install-vercel-web-ana… (#18)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant