diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md new file mode 100644 index 000000000..0fde91665 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -0,0 +1,29 @@ +--- +name: Bug +description: Report incorrect behavior, regressions, or broken flows +title: "[Bug] " +labels: + - bug +--- + +## Summary + +What failed, in one or two sentences (user-visible symptom or test failure). + +## Problem + +What happened vs what you expected, impact, and **steps to reproduce** (ordered, minimal). Include **version / platform** (app version, OS, desktop vs dev) if known. + +## Solution (optional) + +Suspected cause, workaround, or proposed fix. Skip if unknown. + +## Acceptance criteria + +- [ ] **Repro gone** — Bug no longer reproduces on the stated environment (or root cause documented if intentional). +- [ ] **Regression safety** — Unit, integration, or E2E coverage added or updated if this should not come back. +- [ ] **…** — Other verify-before-close items. + +## Related + +Links to issues, PRs, logs, or prior discussion. diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md new file mode 100644 index 000000000..68957eac4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.md @@ -0,0 +1,31 @@ +--- +name: Feature +description: Propose a new capability with tests and code documentation +title: "[Feature] " +labels: + - enhancement +--- + +## Summary + +What we’re building and the user-visible outcome. + +## Problem + +What’s missing today, who it hurts, and constraints (platform, privacy, performance). + +## Solution (optional) + +How you plan to solve it — scope (core / app / both), approach, tradeoffs. Skip if you want discussion first. + +## Acceptance criteria + +- [ ] **Feature 1** — TODO +- [ ] **Feature 2** — TODO +- [ ] **Feature 3** — TODO + +- … + +## Related + +Links to issues, PRs, or prior discussion. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..ebd8f7237 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,34 @@ +## Summary + +- What changed and why. +- Keep this to 3-6 bullets focused on user-visible or architecture-impacting changes. + +## Problem + +- What issue or risk this PR addresses. +- Include context needed for reviewers to evaluate correctness quickly. + +## Solution + +- How the implementation solves the problem. +- Note important design decisions and tradeoffs. + +## Submission Checklist + +- [ ] **Unit tests** — Vitest (`app/`) and/or `cargo test` (core) for logic you add or change +- [ ] **E2E / integration** — Where behavior is user-visible or crosses UI → Tauri → sidecar → JSON-RPC; use existing harnesses (`app/test/e2e`, mock backend, `tests/json_rpc_e2e.rs` as appropriate) +- [ ] **N/A** — If truly not applicable, say why (e.g. change is documentation-only) +- [ ] **Doc comments** — `///` / `//!` (Rust), JSDoc or brief file/module headers (TS) on public APIs and non-obvious modules +- [ ] **Inline comments** — Where logic, invariants, or edge cases aren’t clear from names alone (keep them grep-friendly; avoid restating the code) + +(Any feature related checklist can go in here) + +## Impact + +- Runtime/platform impact (desktop/mobile/web/CLI), if any. +- Performance, security, migration, or compatibility implications. + +## Related + +- Issue(s): +- Follow-up PR(s)/TODOs: diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index d78c36820..000000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,36 +0,0 @@ -## Summary - -- What changed and why. -- Keep this to 3-6 bullets focused on user-visible or architecture-impacting changes. - -## Problem - -- What issue or risk this PR addresses. -- Include context needed for reviewers to evaluate correctness quickly. - -## Solution - -- How the implementation solves the problem. -- Note important design decisions and tradeoffs. - -## Testing - -- [ ] `yarn -s compile` -- [ ] `cargo check --manifest-path app/src-tauri/Cargo.toml` -- [ ] Other checks run (list commands) -- [ ] Manual validation completed (list scenarios) - -## Impact - -- Runtime/platform impact (desktop/mobile/web/CLI), if any. -- Performance, security, migration, or compatibility implications. - -## Breaking Changes - -- [ ] None -- [ ] Yes (describe clearly, including migration steps) - -## Related - -- Issue(s): -- Follow-up PR(s)/TODOs: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7a95de7e0..9b4c8c85e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -104,41 +104,41 @@ jobs: - name: Test Tauri shell (OpenHuman) run: cargo test --manifest-path app/src-tauri/Cargo.toml - e2e-macos: - name: E2E (macOS / Appium) - runs-on: macos-latest - timeout-minutes: 90 - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 1 - submodules: recursive + # e2e-macos: + # name: E2E (macOS / Appium) + # runs-on: macos-latest + # timeout-minutes: 90 + # steps: + # - name: Checkout code + # uses: actions/checkout@v4 + # with: + # fetch-depth: 1 + # submodules: recursive - - name: Setup Node.js 24.x - uses: actions/setup-node@v4 - with: - node-version: 24.x - cache: "yarn" + # - name: Setup Node.js 24.x + # uses: actions/setup-node@v4 + # with: + # node-version: 24.x + # cache: "yarn" - - name: Install Rust (rust-toolchain.toml) - uses: dtolnay/rust-toolchain@1.93.0 + # - name: Install Rust (rust-toolchain.toml) + # uses: dtolnay/rust-toolchain@1.93.0 - - name: Install dependencies - run: yarn install --frozen-lockfile + # - name: Install dependencies + # run: yarn install --frozen-lockfile - - name: Ensure .env exists for E2E build - run: | - touch .env - touch app/.env + # - name: Ensure .env exists for E2E build + # run: | + # touch .env + # touch app/.env - - name: Install Appium and mac2 driver - run: | - npm install -g appium - appium driver install mac2 + # - name: Install Appium and mac2 driver + # run: | + # npm install -g appium + # appium driver install mac2 - - name: Build E2E app bundle - run: yarn workspace openhuman-app test:e2e:build + # - name: Build E2E app bundle + # run: yarn workspace openhuman-app test:e2e:build - - name: Run all E2E flows - run: yarn workspace openhuman-app test:e2e:all:flows + # - name: Run all E2E flows + # run: yarn workspace openhuman-app test:e2e:all:flows diff --git a/CLAUDE.md b/CLAUDE.md index 7cdf9a915..dc674bc35 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -270,9 +270,11 @@ Skills runtime uses **QuickJS** (`rquickjs`) in **`src/openhuman/skills/`** (e.g ## Git workflow +- **GitHub issues on upstream** — File and track issues on **[tinyhumansai/openhuman](https://github.com/tinyhumansai/openhuman/)** ([Issues](https://github.com/tinyhumansai/openhuman/issues)), not only a fork’s tracker, unless the workflow explicitly says otherwise. +- **GitHub issue templates** — Use **[`.github/ISSUE_TEMPLATE/feature.md`](.github/ISSUE_TEMPLATE/feature.md)** for new features and **[`.github/ISSUE_TEMPLATE/bug.md`](.github/ISSUE_TEMPLATE/bug.md)** for bugs; keep the same section structure and fill every required part. AI-authored issues should follow those templates verbatim. - **Open pull requests on upstream** — Always create PRs against **[tinyhumansai/openhuman](https://github.com/tinyhumansai/openhuman)** ([pull requests](https://github.com/tinyhumansai/openhuman/pulls)), not only a fork’s default remote, unless the workflow explicitly says otherwise. - **Public repo**; push to your working branch; PRs target **`main`**. -- Use [`.github/pull_request_template.md`](.github/pull_request_template.md); AI-generated PR text should follow its sections and checklist. +- Use [`.github/PULL_REQUEST_TEMPLATE.md`](.github/PULL_REQUEST_TEMPLATE.md); AI-generated PR text should follow its sections and checklist. --- diff --git a/src/openhuman/agent/prompts/AGENTS.md b/src/openhuman/agent/prompts/AGENTS.md index 651e025a2..3612eda10 100644 --- a/src/openhuman/agent/prompts/AGENTS.md +++ b/src/openhuman/agent/prompts/AGENTS.md @@ -78,7 +78,7 @@ Activated for workflow creation, scheduled tasks, and skill management. ## PR Authoring Rule -When an agent prepares or suggests pull request content, it must follow `.github/pull_request_template.md` and keep all sections/checklists intact. +When an agent prepares or suggests pull request content, it must follow `.github/PULL_REQUEST_TEMPLATE.md` and keep all sections/checklists intact. ## Engineering Ownership Rules