+
+ {item.title}
+{item.text}
+diff --git a/.gitignore b/.gitignore index 60893d7..7621503 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,8 @@ pubspec.lock android/key.properties *.jks *.keystore +__pycache__/ +*.pyc +reference_ui/ +qa/**/*.apk +qa/**/*.zip diff --git a/README.md b/README.md index 051710d..22f40f3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,36 @@ -# MobileCode +
+
+
+ 手机端 AI 编程工作台 / Mobile-first AI coding workspace. +
+ ++ GitHub Pages + · + Release v0.1.0 + · + Roadmap + · + Capability Matrix +
+ +MobileCode is an AI coding workspace designed for mobile devices. The current repository includes a promotional site, a Flutter mobile app preview, a RuntimeManager/Helper runtime baseline, and release QA evidence; cloud execution and GitHub workflow automation are planned capabilities tracked in the governance docs. + +## Visual Preview + +The public visual assets are curated from `reference_ui/local_dialog_all_images_svgs_final_pack/` into `app/public/showcase/`. They are used as brand and promotional design references, not as a substitute for runtime APK screenshots. + +
+
+
|
|
## Repository Structure
@@ -38,3 +68,20 @@ The iOS build requires macOS, Xcode, and valid signing credentials.
Version `v0.1.0` publishes the product site, source preview, and a real Android APK built from `mobile_agent/lib/main.dart` through GitHub Actions.
The iOS build still requires macOS, Xcode, and signing credentials.
+
+## Governance
+
+- [Roadmap](roadmp.md) — task index and execution order.
+- [Capability Matrix](docs/mobilecode-capability-matrix.md) — what works today, what is blocked, what is coming.
+- [Risk Register](docs/mobilecode-risk-register.md) — known risks, mitigations, and stop lines.
+- [Security Model](docs/mobilecode-security-model.md) — trust boundaries, token policy, workspace policy, command policy.
+- [Release QA](docs/mobilecode-release-qa.md) — CI gates, manual verification, artifact download paths.
+- [Version Policy](docs/mobilecode-version-policy.md) — version numbering and stop rules.
+- [UI Showcase Assets](docs/mobilecode-ui-showcase-assets.md) — curated README/GitHub Pages visual asset index.
+- [T00-T23 Closure](docs/mobilecode-t00-t23-closure.md) — first roadmap tranche closure evidence and residual risks.
+
+## Contributing
+
+- [Contributor Onboarding](docs/mobilecode-contributor-onboarding.md) — setup, constraints, and how to get started.
+- [Good First Issues](docs/mobilecode-good-first-issues.md) — starter tasks for new contributors.
+- [Issue Templates](.github/ISSUE_TEMPLATE/) — bug, feature, runtime bug, GitRuntime bug, release blocker, docs feedback.
diff --git a/app/public/showcase/codeloong-state-coding-heat.png b/app/public/showcase/codeloong-state-coding-heat.png
new file mode 100644
index 0000000..398fb67
Binary files /dev/null and b/app/public/showcase/codeloong-state-coding-heat.png differ
diff --git a/app/public/showcase/codeloong-state-loading.png b/app/public/showcase/codeloong-state-loading.png
new file mode 100644
index 0000000..3a74de0
Binary files /dev/null and b/app/public/showcase/codeloong-state-loading.png differ
diff --git a/app/public/showcase/codeloong-state-thinking.png b/app/public/showcase/codeloong-state-thinking.png
new file mode 100644
index 0000000..bf759c8
Binary files /dev/null and b/app/public/showcase/codeloong-state-thinking.png differ
diff --git a/app/public/showcase/mobilecode-brand-identity-sheet.png b/app/public/showcase/mobilecode-brand-identity-sheet.png
new file mode 100644
index 0000000..fd45961
Binary files /dev/null and b/app/public/showcase/mobilecode-brand-identity-sheet.png differ
diff --git a/app/public/showcase/mobilecode-code-with-your-buddy.png b/app/public/showcase/mobilecode-code-with-your-buddy.png
new file mode 100644
index 0000000..6491195
Binary files /dev/null and b/app/public/showcase/mobilecode-code-with-your-buddy.png differ
diff --git a/app/public/showcase/mobilecode-icon-v2.png b/app/public/showcase/mobilecode-icon-v2.png
new file mode 100644
index 0000000..84c4f2d
Binary files /dev/null and b/app/public/showcase/mobilecode-icon-v2.png differ
diff --git a/app/public/showcase/mobilecode-icon-v2.svg b/app/public/showcase/mobilecode-icon-v2.svg
new file mode 100644
index 0000000..517d38b
--- /dev/null
+++ b/app/public/showcase/mobilecode-icon-v2.svg
@@ -0,0 +1,197 @@
+
diff --git a/app/public/showcase/mobilecode-logo-v2-mobile-vibe.png b/app/public/showcase/mobilecode-logo-v2-mobile-vibe.png
new file mode 100644
index 0000000..dc7dc9d
Binary files /dev/null and b/app/public/showcase/mobilecode-logo-v2-mobile-vibe.png differ
diff --git a/app/public/showcase/mobilecode-logo-v2-mobile-vibe.svg b/app/public/showcase/mobilecode-logo-v2-mobile-vibe.svg
new file mode 100644
index 0000000..cde88ac
--- /dev/null
+++ b/app/public/showcase/mobilecode-logo-v2-mobile-vibe.svg
@@ -0,0 +1,212 @@
+
diff --git a/app/public/showcase/mobilecode-logo-v2.png b/app/public/showcase/mobilecode-logo-v2.png
new file mode 100644
index 0000000..8213c5c
Binary files /dev/null and b/app/public/showcase/mobilecode-logo-v2.png differ
diff --git a/app/public/showcase/mobilecode-logo-v2.svg b/app/public/showcase/mobilecode-logo-v2.svg
new file mode 100644
index 0000000..c11b1de
--- /dev/null
+++ b/app/public/showcase/mobilecode-logo-v2.svg
@@ -0,0 +1,213 @@
+
diff --git a/app/public/showcase/mobilecode-mascot-v2.svg b/app/public/showcase/mobilecode-mascot-v2.svg
new file mode 100644
index 0000000..1bb46ce
--- /dev/null
+++ b/app/public/showcase/mobilecode-mascot-v2.svg
@@ -0,0 +1,197 @@
+
diff --git a/app/public/showcase/mobilecode-mascot-wordmark.png b/app/public/showcase/mobilecode-mascot-wordmark.png
new file mode 100644
index 0000000..4de2413
Binary files /dev/null and b/app/public/showcase/mobilecode-mascot-wordmark.png differ
diff --git a/app/src/index.css b/app/src/index.css
index 8cd695a..f6b795b 100644
--- a/app/src/index.css
+++ b/app/src/index.css
@@ -528,6 +528,84 @@ select {
grid-template-columns: repeat(4, 1fr);
}
+.showcase-section {
+ overflow: hidden;
+}
+
+.showcase-feature-grid {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 16px;
+ margin-top: 36px;
+}
+
+.showcase-feature-card,
+.showcase-tile {
+ overflow: hidden;
+ border: 1px solid var(--line);
+ border-radius: 8px;
+ background: var(--surface);
+ box-shadow: 0 18px 60px rgba(0, 0, 0, 0.24);
+}
+
+.showcase-feature-card {
+ display: grid;
+ grid-template-rows: minmax(0, auto) 1fr;
+}
+
+.showcase-feature-card img,
+.showcase-tile img {
+ display: block;
+ width: 100%;
+ background: #f7fbff;
+ object-fit: contain;
+}
+
+.showcase-feature-card img {
+ aspect-ratio: 4 / 5;
+}
+
+.showcase-feature-card div {
+ padding: 22px;
+}
+
+.showcase-feature-card h3,
+.showcase-tile span {
+ margin: 0;
+ color: #ffffff;
+ font-weight: 900;
+}
+
+.showcase-feature-card p {
+ margin: 10px 0 0;
+ color: var(--muted);
+ line-height: 1.65;
+}
+
+.showcase-wall {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ gap: 14px;
+ margin-top: 16px;
+}
+
+.showcase-tile {
+ display: grid;
+ grid-template-rows: minmax(160px, auto) auto;
+}
+
+.showcase-tile img {
+ height: 190px;
+ padding: 16px;
+}
+
+.showcase-tile span {
+ display: block;
+ padding: 14px 16px 16px;
+ color: var(--mint);
+ font-size: 0.92rem;
+}
+
.layer-strip {
display: flex;
flex-wrap: wrap;
@@ -741,6 +819,7 @@ select {
.demo-grid,
.capability-grid,
.feature-grid,
+ .showcase-feature-grid,
.pricing-grid,
.metric-grid,
.split,
@@ -753,6 +832,10 @@ select {
grid-template-columns: 1fr;
}
+ .showcase-wall {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
.hero {
padding-top: 104px;
}
@@ -789,4 +872,12 @@ select {
.page-section {
padding: 72px 0;
}
+
+ .showcase-wall {
+ grid-template-columns: 1fr;
+ }
+
+ .showcase-tile img {
+ height: 220px;
+ }
}
diff --git a/app/src/pages/Home.tsx b/app/src/pages/Home.tsx
index ecebe7a..89b60af 100644
--- a/app/src/pages/Home.tsx
+++ b/app/src/pages/Home.tsx
@@ -21,6 +21,7 @@ const releaseUrl = 'https://github.com/Harzva/mobilecode/releases/tag/v0.1.0';
const repoUrl = 'https://github.com/Harzva/mobilecode';
const demo2048Url = `${pageBase}demo/2048/`;
const githubTestUrl = `${pageBase}github-test/`;
+const showcaseAsset = (file: string) => `${pageBase}showcase/${file}`;
const heroStats = [
{ value: 'v0.1.0+5', label: 'Android APK' },
@@ -94,6 +95,64 @@ const layers = [
'Performance',
];
+const showcaseFeatures = [
+ {
+ title: '品牌识别板',
+ text: '统一 Logo、角色、色彩、移动端标语和使用场景,让项目首页先有产品感。',
+ image: 'mobilecode-brand-identity-sheet.png',
+ alt: 'MobileCode CodeLoong brand identity sheet',
+ },
+ {
+ title: '发布主视觉',
+ text: '用于 README 和 GitHub Pages 的首屏宣传图,强调手机端 AI 编程和开源发布。',
+ image: 'mobilecode-code-with-your-buddy.png',
+ alt: 'MobileCode CodeLoong launch poster',
+ },
+];
+
+const showcaseWall = [
+ {
+ title: '横向标识',
+ image: 'mobilecode-mascot-wordmark.png',
+ alt: 'MobileCode mascot wordmark',
+ },
+ {
+ title: 'Logo SVG',
+ image: 'mobilecode-logo-v2.svg',
+ alt: 'MobileCode logo svg',
+ },
+ {
+ title: 'App Icon',
+ image: 'mobilecode-icon-v2.svg',
+ alt: 'MobileCode app icon svg',
+ },
+ {
+ title: '角色标识',
+ image: 'mobilecode-mascot-v2.svg',
+ alt: 'MobileCode mascot svg',
+ },
+ {
+ title: 'Coding',
+ image: 'codeloong-state-coding-heat.png',
+ alt: 'CodeLoong coding state',
+ },
+ {
+ title: 'Thinking',
+ image: 'codeloong-state-thinking.png',
+ alt: 'CodeLoong thinking state',
+ },
+ {
+ title: 'Loading',
+ image: 'codeloong-state-loading.png',
+ alt: 'CodeLoong loading state',
+ },
+ {
+ title: 'Mobile vibe',
+ image: 'mobilecode-logo-v2-mobile-vibe.svg',
+ alt: 'MobileCode mobile vibe logo svg',
+ },
+];
+
function HeroProof() {
return (
UI Design Wall
++ 从本地参考包中筛选出 MobileCode / CodeLoong 方向的品牌资产与界面气质图,统一放进可复用的展示目录。 +
+{item.text}
+