Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .agents/skills/nosuckshell_ops/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,23 @@ Before submitting a PR, run the validation script provided by this skill:
bash .agents/skills/nosuckshell_ops/scripts/validate_project.sh
```

## Release preparation (always)

For **every** release (stable `vMAJOR.MINOR.PATCH` or pre-release `v…-beta.N` / `-rc.N`), complete **before** pushing the tag:

1. **Single version string** — Set the same SemVer in:
- `apps/desktop/package.json`
- `apps/desktop/package-lock.json` (root + `packages.""` entries)
- `apps/desktop/src-tauri/Cargo.toml`
- `apps/desktop/src-tauri/tauri.conf.json`
2. **Regenerate Rust lock metadata** — From `apps/desktop/src-tauri`, run `cargo check` or `cargo build` so `Cargo.lock` reflects the workspace crate version (look for `name = "src-tauri"`).
3. **Changelog** — Add a top section in `docs/CHANGELOG.md` with user-facing **Added** / **Changed** / **Fixed** / **Notes**; backfill any **missing prerelease** lines if `main` moved without changelog entries. Add a compare/link footer entry for the new tag when applicable.
4. **Release docs** — Update `docs/releases.md` (**Current release** / examples), root `README.md` (tag examples if they pin a version), issue templates or runbooks that show a **sample version string**, and any **in-app** or **store** copy that hard-codes the version (search the repo).
5. **Architecture / product docs** — If behavior changed, update `docs/architecture.md`, in-app `HelpPanel.tsx`, and linked specs (e.g. `docs/superpowers/specs/…`) in the same preparation PR.
6. **Validate** — Run `bash .agents/skills/nosuckshell_ops/scripts/validate_project.sh` (or equivalent `npm test` / `npm run build` / `cargo test` from `apps/desktop`).

The GitHub **release workflow** overwrites the three app manifests from the tag at build time; the checklist still applies so **local builds**, **PR review**, and **changelog accuracy** stay correct.

## Project-Specific Gotchas
- **Identity store schema**: Ensure `ENTITY_STORE_SCHEMA_VERSION` is in sync between `store_models.rs` and `apps/desktop/src/types.ts`.
- **Strict mode**: TypeScript is in strict mode. Fix all `tsc` errors.
Expand Down
12 changes: 8 additions & 4 deletions .agents/skills/nosuckshell_ops/scripts/validate_project.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
#!/bin/bash
set -e
#!/usr/bin/env bash
set -euo pipefail

echo "Starting NoSuckShell Project Validation..."
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../../../.." && pwd)"
cd "$REPO_ROOT"

echo "Starting NoSuckShell Project Validation (repo root: $REPO_ROOT)..."

# Monorepo root checks
echo "Checking frontend dependencies and running tsc..."
Expand All @@ -12,7 +16,7 @@ npm run desktop:test

# Rust checks
echo "Checking Rust code..."
cd apps/desktop/src-tauri
cd "$REPO_ROOT/apps/desktop/src-tauri"
cargo check
cargo test

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ labels: bug

## Environment

- NoSuckShell version (or commit), e.g. `0.1.0-beta.7` or `git rev-parse HEAD`:
- NoSuckShell version (or commit), e.g. `0.2.1` or `git rev-parse HEAD`:
- OS / distro (e.g. CachyOS, macOS 14, Windows 11):
- If Linux WebKit issues: did you try `WEBKIT_DISABLE_DMABUF_RENDERER=1`? (yes/no)

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ services/license-server/target
apps/desktop/src-tauri/gen
Cargo.lock
# .cursor/ is no longer ignored because it contains shared rules for agents
.cursor/debug-*.log
2 changes: 2 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ Cursor (and similar) may load rules under [`.cursor/rules/`](.cursor/rules/) —
## Contributing workflow

See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, screenshots, PR checklist, and security reporting.

**Cutting a release:** Use the **Release preparation** section in [`.agents/skills/nosuckshell_ops/SKILL.md`](.agents/skills/nosuckshell_ops/SKILL.md) together with [docs/CHANGELOG.md](docs/CHANGELOG.md) and [docs/releases.md](docs/releases.md).
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ For security-sensitive reports, use the process in [SECURITY.md](SECURITY.md), n

## Releases (maintainers)

Process and tagging: [docs/releases.md](docs/releases.md). User-facing notes: [docs/CHANGELOG.md](docs/CHANGELOG.md).
Process and tagging: [docs/releases.md](docs/releases.md). User-facing notes: [docs/CHANGELOG.md](docs/CHANGELOG.md). Checklist (versions, lockfiles, doc sync): [`.agents/skills/nosuckshell_ops/SKILL.md`](.agents/skills/nosuckshell_ops/SKILL.md) § Release preparation.

## Community standards

Expand Down
20 changes: 12 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,20 +90,24 @@ Details: [docs/backup-security.md](docs/backup-security.md)

## Release process (maintainers)

GitHub releases are created by pushing a SemVer tag:
GitHub releases are created by pushing a SemVer tag. Full checklist: [docs/releases.md](docs/releases.md). User-facing history: [docs/CHANGELOG.md](docs/CHANGELOG.md).

- Final: `vMAJOR.MINOR.PATCH` (example: `v1.2.3`)
- Pre-release: `vMAJOR.MINOR.PATCH-<suffix>` (example: `v1.2.4-rc.1`, `v0.1.0-beta.7`)
- Final: `vMAJOR.MINOR.PATCH` (example: `v0.2.1`, `v1.2.3`)
- Pre-release: `vMAJOR.MINOR.PATCH-<suffix>` (example: `v1.2.4-rc.1`, `v0.1.0-beta.11`)

**Current pre-release line:** `v0.1.0-beta.7` (push the tag when you want CI to publish binaries). Changelog: [docs/CHANGELOG.md](docs/CHANGELOG.md).
**Before tagging**, use the same version string in:

- `apps/desktop/package.json`
- `apps/desktop/src-tauri/Cargo.toml`
- `apps/desktop/src-tauri/tauri.conf.json`

The [release workflow](.github/workflows/release.yml) still overwrites those files from the tag at build time; keeping them aligned locally avoids drift while developing.

```bash
git tag v0.1.0-beta.7
git push origin v0.1.0-beta.7
git tag v0.2.1
git push origin v0.2.1
```

Full checklist: [docs/releases.md](docs/releases.md)

If the workflow rejects the tag, use `vMAJOR.MINOR.PATCH` or `vMAJOR.MINOR.PATCH-prerelease` (example: `v2.0.0` or `v2.0.0-rc.1`).

## Documentation
Expand Down
4 changes: 2 additions & 2 deletions apps/desktop/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "desktop",
"version": "0.1.0-beta.17",
"version": "0.2.1",
"description": "Cross-platform SSH manager desktop app",
"scripts": {
"dev": "vite",
Expand Down
7 changes: 7 additions & 0 deletions apps/desktop/public/plugin-store/aws.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions apps/desktop/public/plugin-store/azure.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 13 additions & 1 deletion apps/desktop/public/plugin-store/bitwarden.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions apps/desktop/public/plugin-store/digitalocean.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions apps/desktop/public/plugin-store/gcp.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 13 additions & 1 deletion apps/desktop/public/plugin-store/gitea.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 14 additions & 1 deletion apps/desktop/public/plugin-store/github.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 14 additions & 1 deletion apps/desktop/public/plugin-store/gitlab.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions apps/desktop/public/plugin-store/hetzner.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions apps/desktop/public/plugin-store/nss-commander.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading