From cd01b0fa373e28751a0fd4cf54b7c01c735d6a4c Mon Sep 17 00:00:00 2001 From: Enrico Piovesan Date: Tue, 11 Aug 2026 18:54:59 -0600 Subject: [PATCH 1/2] chore: retire apps/android-demo per Spec 004 Remove the expedition Android sample and scrub CI/docs so primary Android Compose shells are the only Android reference path. Co-authored-by: Cursor --- CLAUDE.md | 1 - README.md | 7 +- apps/android-demo/README.md | 27 ----- apps/android-demo/app/build.gradle.kts | 42 -------- .../app/src/main/AndroidManifest.xml | 16 --- .../assets/expedition-runtime-session.json | 9 -- .../com/traverse/demo/android/MainActivity.kt | 99 ------------------- .../app/src/main/res/values/strings.xml | 3 - apps/android-demo/build.gradle.kts | 4 - apps/android-demo/gradle.properties | 3 - apps/android-demo/settings.gradle.kts | 2 - docs/adopted-platform-clients.md | 5 +- docs/demo-inventory.md | 2 +- docs/production-playbook.md | 2 +- docs/production-reference-plan.md | 2 +- scripts/ci/android_demo_smoke.sh | 29 ------ scripts/ci/repository_checks.sh | 3 - 17 files changed, 11 insertions(+), 245 deletions(-) delete mode 100644 apps/android-demo/README.md delete mode 100644 apps/android-demo/app/build.gradle.kts delete mode 100644 apps/android-demo/app/src/main/AndroidManifest.xml delete mode 100644 apps/android-demo/app/src/main/assets/expedition-runtime-session.json delete mode 100644 apps/android-demo/app/src/main/java/com/traverse/demo/android/MainActivity.kt delete mode 100644 apps/android-demo/app/src/main/res/values/strings.xml delete mode 100644 apps/android-demo/build.gradle.kts delete mode 100644 apps/android-demo/gradle.properties delete mode 100644 apps/android-demo/settings.gradle.kts delete mode 100755 scripts/ci/android_demo_smoke.sh diff --git a/CLAUDE.md b/CLAUDE.md index 68121de..5d2db17 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -24,7 +24,6 @@ apps/ web-react/ # Trace Explorer — execution timeline debugger react-demo/ # Expedition React browser demo (adopted from Traverse) browser-consumer/ # Browser consumer façade - android-demo/ # Expedition Android demo macos-demo/ # Expedition macOS demo youaskm3-starter-kit/ # Downstream browser starter kit fixtures/ # Shared UI demo fixtures diff --git a/README.md b/README.md index e3281df..d432804 100644 --- a/README.md +++ b/README.md @@ -28,11 +28,16 @@ UI examples for [Traverse](https://github.com/traverse-framework/Traverse). | Demo | Path | |---|---| | React browser demo | [`apps/react-demo/`](apps/react-demo/) | -| Android demo | [`apps/android-demo/`](apps/android-demo/) | | macOS demo | [`apps/macos-demo/`](apps/macos-demo/) | | Browser consumer façade | [`apps/browser-consumer/`](apps/browser-consumer/) | | youaskm3 starter kit | [`apps/youaskm3-starter-kit/`](apps/youaskm3-starter-kit/) | +### Retired demos + +| Path | Retired | Notes | +|---|---|---| +| `apps/android-demo` | 2026-08-12 | Spec 004 retire (`retire-android-demo`); use primary Android Compose shells | + --- ## By OS / target diff --git a/apps/android-demo/README.md b/apps/android-demo/README.md deleted file mode 100644 index bfa2da9..0000000 --- a/apps/android-demo/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Traverse Android Demo - -Checked-in Android (Compose) demo for Traverse expedition planning. - -Canonical home: **`traverse-framework/reference-apps`** (`apps/android-demo/`). - -What it does: - -- renders one approved expedition flow -- shows ordered runtime state updates -- shows the final trace summary and output panel -- assumes the runtime exists outside the app process - -Fixture-driven rendering uses `app/src/main/assets/expedition-runtime-session.json`. - -## Build (machine with Android SDK) - -```bash -cd apps/android-demo -./gradlew :app:assembleDebug -``` - -## Validation - -```bash -bash scripts/ci/android_demo_smoke.sh -``` diff --git a/apps/android-demo/app/build.gradle.kts b/apps/android-demo/app/build.gradle.kts deleted file mode 100644 index 7428ad7..0000000 --- a/apps/android-demo/app/build.gradle.kts +++ /dev/null @@ -1,42 +0,0 @@ -plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") -} - -android { - namespace = "com.traverse.demo.android" - compileSdk = 35 - - defaultConfig { - applicationId = "com.traverse.demo.android" - minSdk = 28 - targetSdk = 35 - versionCode = 1 - versionName = "0.1.0" - } - - buildFeatures { - compose = true - } - - composeOptions { - kotlinCompilerExtensionVersion = "1.5.14" - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = "17" - } -} - -dependencies { - implementation(platform("androidx.compose:compose-bom:2024.09.02")) - implementation("androidx.activity:activity-compose:1.9.2") - implementation("androidx.compose.material3:material3") - implementation("androidx.compose.ui:ui") - implementation("androidx.compose.ui:ui-tooling-preview") -} diff --git a/apps/android-demo/app/src/main/AndroidManifest.xml b/apps/android-demo/app/src/main/AndroidManifest.xml deleted file mode 100644 index 2084f06..0000000 --- a/apps/android-demo/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - diff --git a/apps/android-demo/app/src/main/assets/expedition-runtime-session.json b/apps/android-demo/app/src/main/assets/expedition-runtime-session.json deleted file mode 100644 index bcee3cc..0000000 --- a/apps/android-demo/app/src/main/assets/expedition-runtime-session.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "demo_id": "expedition.plan.v1", - "title": "Plan Expedition", - "request_id": "req-expedition-001", - "execution_id": "exec_req-expedition-001", - "trace_id": "trace_exec_req-expedition-001", - "status": "completed", - "summary": "Traverse evaluates the governed expedition workflow and assembles a final expedition plan." -} diff --git a/apps/android-demo/app/src/main/java/com/traverse/demo/android/MainActivity.kt b/apps/android-demo/app/src/main/java/com/traverse/demo/android/MainActivity.kt deleted file mode 100644 index 3759a16..0000000 --- a/apps/android-demo/app/src/main/java/com/traverse/demo/android/MainActivity.kt +++ /dev/null @@ -1,99 +0,0 @@ -package com.traverse.demo.android - -import android.os.Bundle -import androidx.activity.ComponentActivity -import androidx.activity.compose.setContent -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.material3.Card -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -class MainActivity : ComponentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - MaterialTheme { - TraverseAndroidDemoScreen(sampleStateUpdates) - } - } - } -} - -private val sampleStateUpdates = listOf( - DemoStateUpdate( - "Discovering capability", - "Looking up expedition.planning.plan-expedition@1.0.0 in the registry." - ), - DemoStateUpdate( - "Evaluating constraints", - "Confirming the approved expedition capability can run locally." - ), - DemoStateUpdate( - "Executing workflow", - "Traversing the approved expedition planning workflow." - ), - DemoStateUpdate( - "Completed", - "The expedition plan is ready for final review." - ) -) - -data class DemoStateUpdate( - val title: String, - val detail: String, -) - -@Composable -private fun TraverseAndroidDemoScreen(stateUpdates: List) { - Scaffold { padding -> - LazyColumn( - modifier = Modifier - .fillMaxSize() - .padding(padding), - contentPadding = PaddingValues(16.dp), - verticalArrangement = Arrangement.spacedBy(12.dp), - ) { - item { - Card(modifier = Modifier.fillMaxWidth()) { - Column(modifier = Modifier.padding(16.dp)) { - Text("Traverse Android Demo", style = MaterialTheme.typography.headlineSmall) - Text( - "Plan Expedition", - style = MaterialTheme.typography.titleMedium, - modifier = Modifier.padding(top = 8.dp) - ) - Text( - "Runtime states and final trace summary render from the approved expedition demo fixture.", - style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.padding(top = 8.dp) - ) - } - } - } - - items(stateUpdates) { update -> - Card(modifier = Modifier.fillMaxWidth()) { - Column(modifier = Modifier.padding(16.dp)) { - Text(update.title, style = MaterialTheme.typography.titleMedium) - Text( - update.detail, - style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.padding(top = 6.dp) - ) - } - } - } - } - } -} diff --git a/apps/android-demo/app/src/main/res/values/strings.xml b/apps/android-demo/app/src/main/res/values/strings.xml deleted file mode 100644 index 75f48c8..0000000 --- a/apps/android-demo/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - Traverse Android Demo - diff --git a/apps/android-demo/build.gradle.kts b/apps/android-demo/build.gradle.kts deleted file mode 100644 index 017d909..0000000 --- a/apps/android-demo/build.gradle.kts +++ /dev/null @@ -1,4 +0,0 @@ -plugins { - id("com.android.application") version "8.5.2" apply false - id("org.jetbrains.kotlin.android") version "1.9.24" apply false -} diff --git a/apps/android-demo/gradle.properties b/apps/android-demo/gradle.properties deleted file mode 100644 index e696167..0000000 --- a/apps/android-demo/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 -android.useAndroidX=true -kotlin.code.style=official diff --git a/apps/android-demo/settings.gradle.kts b/apps/android-demo/settings.gradle.kts deleted file mode 100644 index 9614dec..0000000 --- a/apps/android-demo/settings.gradle.kts +++ /dev/null @@ -1,2 +0,0 @@ -rootProject.name = "TraverseAndroidDemo" -include(":app") diff --git a/docs/adopted-platform-clients.md b/docs/adopted-platform-clients.md index 0fb3a8b..b55e475 100644 --- a/docs/adopted-platform-clients.md +++ b/docs/adopted-platform-clients.md @@ -16,7 +16,7 @@ Ownership boundary (Traverse [#703](https://github.com/traverse-framework/Traver | Former Traverse path | Owner | Destination here | |---|---|---| -| `apps/android-demo/` | Reference Apps | [`apps/android-demo/`](../apps/android-demo/) | +| `apps/android-demo/` | Reference Apps | **Retired** 2026-08-12 (`retire-android-demo`) — use primary Android Compose shells | | `apps/browser-consumer/` | Reference Apps | [`apps/browser-consumer/`](../apps/browser-consumer/) | | `apps/macos-demo/` | Reference Apps | [`apps/macos-demo/`](../apps/macos-demo/) | | `apps/react-demo/` | Reference Apps | [`apps/react-demo/`](../apps/react-demo/) | @@ -24,13 +24,12 @@ Ownership boundary (Traverse [#703](https://github.com/traverse-framework/Traver | `apps/llm-mcp-reference/` (new) | Reference Apps | [`apps/llm-mcp-reference/`](../apps/llm-mcp-reference/) — LLM MCP façades; [`llm-reference-apps-plan.md`](llm-reference-apps-plan.md) | | Runtime fixtures / manifests | Traverse | `examples/` in Traverse (not adopted) | -Shared fixture for native demos: [`fixtures/expedition-runtime-session.json`](../fixtures/expedition-runtime-session.json). +Shared fixture for remaining native demos: [`fixtures/expedition-runtime-session.json`](../fixtures/expedition-runtime-session.json). ## Validation commands (secondary / adopted) | Artifact | Command | |---|---| -| Android demo | `bash scripts/ci/android_demo_smoke.sh` | | macOS demo | `bash scripts/ci/macos_demo_smoke.sh` | | React demo | `bash scripts/ci/react_demo_smoke.sh` | | youaskm3 starter | `bash scripts/ci/youaskm3_starter_kit_smoke.sh` | diff --git a/docs/demo-inventory.md b/docs/demo-inventory.md index 66e8c07..00e783f 100644 --- a/docs/demo-inventory.md +++ b/docs/demo-inventory.md @@ -11,7 +11,7 @@ Reconciled against `find apps -maxdepth 1 -type d` on 2026-08-11. Primaries are | `apps/doc-approval` | already-primary | Production multi-OS product shell | — | | `apps/trace-explorer` | already-primary | Debugger companion (web-only by design) | — | | `apps/react-demo` | retire | Expedition browser sample; Spec 004 non-goal as production pattern; primaries own Web UX | `retire-react-demo` | -| `apps/android-demo` | retire | Expedition Android sample; superseded by primary Android Compose shells | `retire-android-demo` | +| `apps/android-demo` | retire (done) | Removed 2026-08-12; superseded by primary Android Compose shells | `retire-android-demo` | | `apps/macos-demo` | retire | Expedition macOS sample; superseded by primary SwiftUI shells | `retire-macos-demo` | | `apps/browser-consumer` | upgrade | Keep as downstream browser façade; align to Specs 001/002 and stop depending on `react-demo` once that path retires | `upgrade-browser-consumer-events` | | `apps/youaskm3-starter-kit` | upgrade | Keep as downstream getting-started kit; point at embedded/public surfaces + Specs 001/002 vocabulary | `upgrade-youaskm3-starter-kit-events` | diff --git a/docs/production-playbook.md b/docs/production-playbook.md index aa433c5..d2c5bbf 100644 --- a/docs/production-playbook.md +++ b/docs/production-playbook.md @@ -39,7 +39,7 @@ Rules: | App | Status | |---|---| | trace-explorer | **Debugger** — embedded Trace API (`embedded-trace-api/1.0.0`); not a secondary “product” kit | -| react-demo, android-demo, macos-demo, youaskm3-starter-kit, browser-consumer | **Adopted / secondary** demos & kits — lighter maintenance; not merge-blocking `embedded_smoke` targets — see [`adopted-platform-clients.md`](adopted-platform-clients.md) | +| react-demo, macos-demo, youaskm3-starter-kit, browser-consumer | **Adopted / secondary** demos & kits — lighter maintenance; not merge-blocking `embedded_smoke` targets — see [`adopted-platform-clients.md`](adopted-platform-clients.md) (`android-demo` retired) | --- diff --git a/docs/production-reference-plan.md b/docs/production-reference-plan.md index 440c273..150db7f 100644 --- a/docs/production-reference-plan.md +++ b/docs/production-reference-plan.md @@ -44,7 +44,7 @@ Related: | Tier | Apps | Smoke / CI bar | |---|---|---| | **Primary product shells** | `traverse-starter`, `doc-approval`, `meeting-notes` | Production DoD; Linux-runnable `embedded_smoke` hard-fail | -| **Adopted / secondary** | `react-demo`, `android-demo`, `macos-demo`, `browser-consumer`, `youaskm3-starter-kit`, `llm-mcp-reference` | Lighter demo smokes only — **not** merge-blocking `embedded_smoke` targets | +| **Adopted / secondary** | `react-demo`, `macos-demo`, `browser-consumer`, `youaskm3-starter-kit`, `llm-mcp-reference` | Lighter demo smokes only — **not** merge-blocking `embedded_smoke` targets (`android-demo` retired) | | **Debugger** | `trace-explorer` | Embedded Trace API companion — not a product shell to copy | Canonical narrative: [`adopted-platform-clients.md`](adopted-platform-clients.md) · front door: root `README.md`. diff --git a/scripts/ci/android_demo_smoke.sh b/scripts/ci/android_demo_smoke.sh deleted file mode 100755 index 823dea4..0000000 --- a/scripts/ci/android_demo_smoke.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash -# Offline structure smoke for the adopted Android expedition demo. -set -euo pipefail - -repo_root="$(cd "$(dirname "$0")/../.." && pwd)" - -required_files=( - "apps/android-demo/README.md" - "apps/android-demo/settings.gradle.kts" - "apps/android-demo/build.gradle.kts" - "apps/android-demo/app/build.gradle.kts" - "apps/android-demo/app/src/main/AndroidManifest.xml" - "apps/android-demo/app/src/main/java/com/traverse/demo/android/MainActivity.kt" - "apps/android-demo/app/src/main/res/values/strings.xml" - "apps/android-demo/app/src/main/assets/expedition-runtime-session.json" -) - -for file in "${required_files[@]}"; do - if [[ ! -f "${repo_root}/${file}" ]]; then - echo "missing Android demo artifact: ${file}" >&2 - exit 1 - fi -done - -grep -q 'setContent' "${repo_root}/apps/android-demo/app/src/main/java/com/traverse/demo/android/MainActivity.kt" -grep -q 'Traverse Android Demo' "${repo_root}/apps/android-demo/app/src/main/res/values/strings.xml" -grep -q '"status": "completed"' "${repo_root}/apps/android-demo/app/src/main/assets/expedition-runtime-session.json" - -echo "Android demo smoke passed" diff --git a/scripts/ci/repository_checks.sh b/scripts/ci/repository_checks.sh index 4584813..40ded38 100644 --- a/scripts/ci/repository_checks.sh +++ b/scripts/ci/repository_checks.sh @@ -96,8 +96,6 @@ check "manifests/meeting-notes/app.manifest.json" "meeting check "manifests/meeting-notes/components/process/component.manifest.json" "meeting-notes process component" # Adopted Traverse platform demos / starter (issue #151) -check "apps/android-demo/README.md" "android-demo README" -check "apps/android-demo/app/src/main/java/com/traverse/demo/android/MainActivity.kt" "android-demo MainActivity" check "apps/browser-consumer/index.js" "browser-consumer package" check "apps/macos-demo/Package.swift" "macos-demo Package.swift" check "apps/react-demo/src/main.js" "react-demo main" @@ -108,7 +106,6 @@ check "fixtures/expedition-runtime-session.json" "expedit check "docs/adopted-platform-clients.md" "adopted platform clients doc" check "docs/production-playbook.md" "production playbook" check "docs/youaskm3-starter-kit.md" "youaskm3 starter guide" -check "scripts/ci/android_demo_smoke.sh" "android demo smoke" check "scripts/ci/macos_demo_smoke.sh" "macos demo smoke" check "scripts/ci/react_demo_smoke.sh" "react demo smoke" check "scripts/ci/youaskm3_starter_kit_smoke.sh" "youaskm3 starter smoke" From adac39ee7bce9d91438ac392959a62b460aa56f8 Mon Sep 17 00:00:00 2001 From: Enrico Piovesan Date: Tue, 11 Aug 2026 18:55:11 -0600 Subject: [PATCH 2/2] docs: cite retire-android-demo PR in Retired demos note Co-authored-by: Cursor --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d432804..14e177b 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ UI examples for [Traverse](https://github.com/traverse-framework/Traverse). | Path | Retired | Notes | |---|---|---| -| `apps/android-demo` | 2026-08-12 | Spec 004 retire (`retire-android-demo`); use primary Android Compose shells | +| `apps/android-demo` | 2026-08-12 | Spec 004 retire ([#251](https://github.com/traverse-framework/reference-apps/pull/251)); use primary Android Compose shells | ---