Files

5.0 KiB

OmniGet Agent Instructions & Release Protocol

Welcome to OmniGet. This file serves as the definitive reference and operating manual for all AI agents working in this repository.


1. Project Architecture

  • Desktop Framework: Tauri v2 (src-tauri/) with Rust 1.97.0.
  • Frontend: SvelteKit / Svelte 5 (src/) powered by Vite.
  • Embedded Plugins: Statically linked core plugins (courses, telegram, convert) in src-tauri/plugins/.
  • Public Website & Docs: GitHub Pages static suite served from repo root:
    • Root landing page: index.html.
    • Documentation suite: docs/ (docs/index.html, docs/changelog/, docs/installation/, docs/courses/, docs/opennami/, docs/mcp/, docs/troubleshooting/).
    • Companion Browser Extension: browser-extension/chrome/.

2. Release Protocol & Mandatory Post-Release SOP

Important

NEVER skip writing the release notes, updating the landing page, or updating the documentation when cutting or preparing a release. The in-app changelog modal (src/lib/stores/changelog-store.svelte.ts) fetches the GitHub release body directly from https://api.github.com/repos/OpenSelena/omniget/releases/tags/v<VERSION>. Leaving release notes blank breaks the in-app user experience.

Standard Operating Procedure for Every Release:

  1. Version Bump:

    • Run: pnpm version:set <major|minor|patch|X.Y.Z>
    • This automatically updates:
      • package.json
      • src-tauri/Cargo.toml & src-tauri/Cargo.lock
      • src-tauri/tauri.conf.json
      • src/lib/stores/changelog-store.svelte.ts
      • index.html (download links, version meta tags, CTA text)
      • docs/*/index.html (sidebar version tags)
      • SECURITY.md & .github/SECURITY.md (supported versions table)
  2. Documentation Updates:

    • docs/changelog/index.html:
      • Prepend the new release block <article class="release-box" id="vX-Y-Z"> above the previous release.
      • Demote the previous release tag pill to <span class="sidebar-tag">.
      • Update the Table of Contents <ul class="toc-list" id="tocList"> to list the new version as vX.Y.Z (Latest Stable).
      • Update the search modal description.
    • docs/index.html:
      • Update the Section 10 Release card to feature the new version.
      • Update the Quickstart release callout and User-Agent examples.
  3. Git Commit & Tag:

    • Format: chore(release): bump version to vX.Y.Z, ...
    • Create annotated/signed tag: git tag vX.Y.Z
    • Push: git push origin main --tags
  4. GitHub Release Notes (MANDATORY):

    • As soon as the GitHub release is published by the workflow (or manually):
    • Compile comprehensive release notes detailing:
      • ## What's New (categorized by feature area)
      • ## Fixes
    • Update the release via GitHub CLI:
      gh release edit vX.Y.Z --notes-file <notes.md>
      
    • Verify the notes with:
      gh release view vX.Y.Z
      
  5. Asset Name & Casing Verification:

    • Check the exact asset filenames uploaded by Tauri (gh release view vX.Y.Z --json assets).
    • Notice casing: e.g. OmniGet_0.11.0_x64-setup.exe (capitalized OmniGet) vs omniget_0.11.0_x64-portable.exe (lowercase omniget).
    • Ensure index.html download buttons use the exact asset filenames.

3. Branch Strategy & Quality Gates

Branch Workflow

  • dev (Development & Staging): All feature development, refactoring, and bug fixes must be committed and pushed to dev first.
  • Continuous Integration (CI) Gate: Pushing to dev automatically triggers GitHub Actions (.github/workflows/ci.yml) to test across Linux, Windows, and macOS.
  • main (Production / Stable): Code is never pushed directly to main. The dev branch is only merged into main after all GitHub Actions CI checks have completed with a green checkmark (100% passing).

Local Pre-Commit Verification

Before pushing to dev:

  • pnpm test : Runs full Vitest suite (must pass 100%).
  • node scripts/e2e_verify.mjs : Validates documentation suite routes, links, and accessibility.
  • pnpm lint:ui <target> : Required whenever modifying Svelte routes, UI components, stylesheets, index.html, or docs/ — see .agents/skills/ui-lint/SKILL.md.

Agent skills

Issue tracker

GitHub Issues at OpenSelena/omniget via the gh CLI. See docs/agents/issue-tracker.md.

Triage labels

Canonical triage roles (needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix). See docs/agents/triage-labels.md.

Domain docs

Single-context (GLOSSARY.md and docs/adr/). See docs/agents/domain.md.


Local Overrides & Session Protocol

If present, private developer environment overrides, local notes, or personal tool paths are read from AGENTS.local.md (git-ignored). All agents and subagents must strictly adhere to the pre-task retrieval and post-task writeback protocols specified in AGENTS.local.md before concluding any task.