Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6cb60ba
docs(readme): note unconfirmed Linux oversized-cursor issue (#6)
maosuarez Aug 4, 2026
b28f310
fix(window-chrome): show minimize/close controls on Linux
maosuarez Aug 4, 2026
cd36da2
fix(mcp): unify environment-scope param name on environment_id (issue…
maosuarez Aug 4, 2026
01aef84
fix(db,project,api): case-insensitive uniqueness for environment/proj…
maosuarez Aug 4, 2026
98284e5
feat(wsl,project): add WSL bridge for the environment .env path picke…
maosuarez Aug 4, 2026
8cbee09
fix(api,project,cli,mcp): gate .env write targets against silent clob…
maosuarez Aug 4, 2026
ba22dff
test(api,db,project,vault,share,cli,mcp): add shared test harness + c…
maosuarez Aug 4, 2026
bd78bd6
fix(db,project,api): fix non-ASCII dedup fold mismatch, report durabi…
maosuarez Aug 4, 2026
0095c87
fix(api,cli,mcp,docs): union unlinked global items into discovery end…
maosuarez Aug 4, 2026
fc817a2
fix(security): contain path traversal via environment name (issue #7)
maosuarez Aug 4, 2026
9f7bbbc
fix(api,db,vault,cli,mcp): stop POST /items orphaning the old item on…
maosuarez Aug 4, 2026
f430eed
feat(share,project,api,cli,ui): share a whole project via relay (issu…
maosuarez Aug 4, 2026
34bf3d7
merge: issue #11 test harness + coverage baseline
maosuarez Aug 5, 2026
36db76f
merge: issue #12 case-insensitive environment/project name uniqueness
maosuarez Aug 5, 2026
db92f5e
merge: issue #5 Linux window controls
maosuarez Aug 5, 2026
c6c2cf0
merge: issue #6 oversized cursor docs
maosuarez Aug 5, 2026
6c54561
merge: issue #3 WSL bridge for environment .env path picker
maosuarez Aug 5, 2026
09522c1
merge: issue #10 unify MCP environment-scope param on environment_id
maosuarez Aug 5, 2026
7d96152
merge: issue #8 gate .env write targets against silent clobbering
maosuarez Aug 5, 2026
937e4b9
merge: issue #7 contain path traversal via environment name
maosuarez Aug 5, 2026
9ad6a77
merge: issue #9 stop POST /items orphaning the old item on key collision
maosuarez Aug 5, 2026
9caab6f
merge: issue #13 union unlinked global items into discovery endpoints
maosuarez Aug 5, 2026
d07ff7f
merge: issue #4 share a whole project via relay
maosuarez Aug 5, 2026
350f8ee
ci(test): run the integration suites under tests/, not just --lib --bins
maosuarez Aug 5, 2026
b8b5aae
merge: tier-1 CI fix into tier 2
maosuarez Aug 5, 2026
433937f
merge: tier-2 into tier 3
maosuarez Aug 5, 2026
c11ea74
refactor(db): drop bare unwrap() in link_item_to_environment
maosuarez Aug 5, 2026
479ca07
Merge remote-tracking branch 'origin/main' into batch/tier3-scope-and…
maosuarez Aug 6, 2026
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
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

---

## [Unreleased]

### Added

- **Share a whole project via relay** (issue #4) β€” one send + one receive now carries a project's structure (environments, `isDefault`) *and* the decrypted values of every item they reference, for however many environments are selected, in a single encrypted relay round-trip. Previously the same outcome took an export-template + relay-send-per-environment workaround.
- **Protocol**: `ProjectBundle`/`EnvironmentBundle`/`ProjectBundleVar` in `share/relay.rs` (`kind: "project"`, `version: 1`, checked on decrypt). Items are deduped by name and hoisted to the bundle root, so an item linked into 3 environments produces one bundled item, not three. Never carries `paths` (machine-specific, dropped) or a `literal` value field.
- **REST**: `POST /projects/:id/relay/send` (body `{environment_ids}`), `POST /projects/relay/receive` (body `{code, passphrase, project_name_override?}`).
- **Tauri**: `project_relay_send(project_id, environment_ids)`, `project_relay_receive(code, passphrase, project_name_override?)`.
- **CLI**: `crypt-env project share --id N --envs a,b [--yes]`, `crypt-env project receive --code X --passphrase Y [--as NAME]`. `--envs` omitted defaults to the default environment only; `--envs all` opts in explicitly.
- **GUI**: "SHARE PROJECT" / "RECEIVE PROJECT" on the Projects screen, with a per-environment key manifest (KEY β†’ item name, never values) shown before upload and a rename prompt on a name collision.
- **Receive semantics**: always creates a **new** project β€” never merges into an existing one. A case-insensitive project-name collision is a hard error (`409 CONFLICT` over REST), retryable with an override name. The whole receive is one transaction (all-or-nothing). Received items are owned by the new project only, never `isGlobal`.
- **No MCP tool** β€” deliberately not exposed to MCP; see `docs/reference.md`'s Notes for the reasoning.

### Removed (Breaking)

- **Legacy workspace relay endpoints and MCP tools**, dead since the Projects/Environments migration: they read/wrote the frozen `workspaces`/`workspace_vars` tables that no product surface displays post-migration, so any import through them landed as ownerless, invisible items.
- REST: `POST /workspaces/:id/relay/send`, `POST /workspaces/relay/receive`.
- MCP tools: `crypt_env_share_workspace_send`, `crypt_env_share_workspace_receive`.
- `WorkspaceBundle`/`WorkspaceBundleVar`/`encrypt_workspace`/`decrypt_workspace` deleted from `share/relay.rs`. The underlying `workspaces`/`workspace_vars`/`workspace_paths` tables and their `db` accessors are **kept** β€” they remain the one-time migration backfill source for pre-migration installs.
- Not aliased: both endpoints were already documented as legacy/broken, and their one shipped consumer (the MCP server) is updated in the same change.

---

## [1.0.2] - 2026-08-04

### Changed
Expand Down
115 changes: 93 additions & 22 deletions docs/reference.md

Large diffs are not rendered by default.

Loading
Loading