Skip to content

feat(installer): add one-command installer flow and release smoke checks - #123

Merged
senamakel merged 3 commits into
tinyhumansai:mainfrom
oxoxDev:feat/global-installer
Mar 31, 2026
Merged

senamakel merged 3 commits into
tinyhumansai:mainfrom
oxoxDev:feat/global-installer

Conversation

@oxoxDev

@oxoxDev oxoxDev commented Mar 31, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Add production installer script for macOS/Linux at scripts/install.sh with platform detection, latest release resolution, checksum verification, and local setup behavior.
  • Add Windows PowerShell installer at scripts/install.ps1 for x64 latest-release installation with digest verification and per-user install behavior.
  • Enable Windows artifacts in release workflow and add required-asset validation before publishing release.
  • Add cross-platform installer smoke workflow (.github/workflows/installer-smoke.yml) that dry-runs installers on macOS, Linux, and Windows.
  • Update README and BUILDING docs to make the one-command installer the primary install path and document setup outcomes.

Problem

  • Installing OpenHuman required manual release artifact selection, which is error-prone and increases support burden.
  • The repo lacked a complete one-command local setup path and release-level checks to ensure installer compatibility across platforms.

Solution

  • Implemented two installer entrypoints optimized for native terminal environments:
    • curl .../install.sh | bash for macOS/Linux
    • irm .../install.ps1 | iex for Windows
  • Installer logic resolves latest stable release metadata, chooses platform-specific artifacts, verifies integrity where digest metadata exists, and installs in user-local destinations with clear post-install guidance.
  • Release automation now includes Windows build target and a publish-time guard that fails if required installer assets are missing.
  • Added CI smoke coverage for installer dry-run logic to catch regressions before merge.

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 — Changes are shell/PowerShell installer scripts, CI workflow wiring, and docs updates; validation was done via installer dry-runs and workflow YAML parsing.
  • Doc comments — /// / //! (Rust), JSDoc or brief file/module headers (TS) on public APIs and non-obvious modules
  • Inline comments — Added where logic or platform edge cases are non-obvious in workflow/script sections.

(Any feature related checklist can go in here)

Impact

  • Runtime/platform impact: desktop distribution/install path across macOS, Linux, and Windows.
  • Improves first-run UX and reduces install mistakes via one-command setup and clearer failure messaging.
  • Release safety improved with required-asset gating and installer smoke checks.
  • No core runtime/business-logic migration required.

Related

oxoxDev added 3 commits March 31, 2026 19:54
Add production installers with platform detection, latest-release resolution, digest verification, and local install flows.
Restore windows target in release matrix, validate required installer assets, and add cross-platform installer dry-run CI.
Make curl installer the primary command, keep Windows as secondary guidance, and describe local setup outcomes.
@graycyrus graycyrus linked an issue Mar 31, 2026 that may be closed by this pull request
5 tasks
@senamakel
senamakel merged commit c46adfa into tinyhumansai:main Mar 31, 2026
7 of 8 checks passed
senamakel referenced this pull request in senamakel/openhuman Apr 23, 2026
Two sides of the same problem:

1) PR template told authors to list `Issue(s): #123`, which GitHub only
   treats as a back-reference — not a closing directive. Updated to
   prompt for `Closes #123` / `Fixes #123` / `Resolves #123` (the
   keywords GitHub scans when populating closingIssuesReferences).

2) merge.sh now emits one `Closes #N` line per entry in
   closingIssuesReferences, placed between the LLM summary and the
   Co-authored-by block. Previously the summary prompt told the model
   to omit issue numbers, so any closing keywords from the PR body got
   stripped and the squash commit landed without them. Also strip any
   stray closing lines the LLM or PR body may still produce so we don't
   emit duplicates, and because GitHub's regex only closes the first
   ref per keyword (`Closes #1, #2` only closes #1).
AusAgentSmith pushed a commit to AusAgentSmith/openhuman that referenced this pull request May 23, 2026
sanil-23 added a commit to sanil-23/openhuman that referenced this pull request May 29, 2026
Addresses @senamakel's review on the consolidated proactive-pipeline PR:

- **Major: claim now dedupes (CAS).** `dispatch_card` re-loads the card's
  current status and only transitions `Todo`/`Ready` → `InProgress`;
  `enforce_single_in_progress` alone did NOT dedupe (re-flipping an already
  in-progress card keeps count==1). Kills the serial double-dispatch /
  re-run-of-done-card; corrected the false invariant in the module/fn docs.
  (A fully race-free claim needs a per-thread-locked ops CAS — noted as
  follow-up; thread boards aren't lock-serialised so a narrow TOCTOU remains.)
- **Tests:** added write_back Done/Err coverage.
- **Security:** documented the prompt-injection threat model on run_autonomous
  (source content is attacker-influenceable; plan-approval is the interactive
  checkpoint; egress `*` matches skill runs; per-provider egress scoping is a
  tracked follow-up).
- **Event:** documented that TaskPlanAwaitingApproval is surfaced via board
  refetch today; a realtime socket bridge is a deliberate follow-up.
- **Nits:** dropped the duplicate "card claimed" log; gated the origin prompt
  block on provider.is_some() so id-only metadata doesn't render "tinyhumansai#123".

Co-Authored-By: Claude <noreply@anthropic.com>
senamakel pushed a commit to nocstah/openhuman that referenced this pull request Sep 11, 2026
senamakel added a commit that referenced this pull request Oct 18, 2026
feat(storage): journal sealing and storage maintenance sweep
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Add cross-platform global installer for latest OpenHuman release

2 participants