Commit Graph
12 Commits
Author SHA1 Message Date
Gregory SchierandClaude Opus 5 33378741af feat(import): group the workspace's environments under one heading
An imported OpenAPI document brings a base environment plus one per
server, and they landed as loose rows at the top of the tree with no way
to take them as a set. They can't nest under anything real — a
sub-environment is a sibling of the base one, not its child — so a
heading groups them and its checkbox turns the set on and off.

The tree's rows are now either a plan item or a heading, which is what
the destination workspace has always been: it no longer has to pose as a
plan item with an invented action and selection.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 08:39:04 -07:00
Gregory SchierandClaude Opus 5 0dbefd4283 refactor(import): give the preview one rule for what a checkbox carries
A parent's checkbox covered creates and updates but skipped deletions and
local-edit reverts, so a folder holding only those got no checkbox at all
and the ones it did get moved a subset of what sat under them. The labels
already mark destructive rows, so a parent now carries everything beneath
it that has a checkbox of its own.

Checking a row also brings in the folders it needs, which is the same rule
read upwards and leaves nothing to disable: a resource can no longer be
checked inside a folder that will not exist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 08:32:06 -07:00
Gregory SchierandClaude Opus 5 82ee025cd3 refactor(import): call a turned-down resource ignored
"Not imported" was two words in a column of one-word states, and it read
as a description of this run rather than the standing decision it is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 08:27:17 -07:00
Gregory SchierandClaude Opus 5 a3e6afcdc9 fix(import): list environments above folders in the preview
Sorting put folders first and swept environments in with the requests, so
the two environments an OpenAPI import creates landed underneath every
folder in the document.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 08:23:14 -07:00
Gregory SchierandClaude Opus 5 6796569466 feat(import): say which fields differ, and stop offering to apply nothing
A row marked "edited" or "conflict" gave no way to tell what actually
differs, so a resource that drifted from the file — however it drifted —
reads as an unexplained accusation. The plan now carries the field names
the source and the local copy disagree on, and the row's tooltip lists
them.

The preview's primary button also read "Apply" when the current selection
would change nothing. It now reads "Done", since committing an empty
selection only records the decisions made in the preview.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 11:24:25 -07:00
Gregory SchierandClaude Opus 5 72d3bda769 fix(import): shrink the conflict control and fold its help inside it
The conflict row's segmented control ran at the default size with the help
icon floating outside the group. Drop it to the smallest button size and
hand the help to the control, which shows it in its last option whenever
the label is hidden — the only case where the label has nowhere to put it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 11:13:19 -07:00
Gregory SchierandClaude Opus 5 bd932ce85f feat(import): remember the user's import selection
Yaak now remembers, per item of a linked import source, whether the user
wants it. A mapping row that still points at a model means wanted, so
re-imports merge into it; a row with no model behind it means not wanted,
so re-imports leave it alone. Wanted-ness is structural rather than a flag:
deleting the model locally, or turning the item down in the preview, is
what makes it not wanted.

- import_source_resources drops `snapshot` for a nullable `content_hash`
  and lets `model_id` be NULL. The migration keeps every beta row's
  key to model mapping and starts hashes empty; until a hash is recorded,
  a difference can't be attributed to either side, so the item is offered
  once as a conflict that keeps local changes.
- comparable() ignores sortPriority. Importers number it from source
  order, so inserting one operation used to plan a fake update for
  everything after it. The trade is that pure reorders don't propagate.
- Keys the user turned down come back as unchecked "not imported" rows
  instead of being re-offered as new resources or resurrected. Checking
  one imports it under the same source key and pulls in the folders it
  needs.
- An imported resource the source moves into a folder that isn't imported
  is offered as a deletion, with a tooltip pointing at the folder.
- Plan-time source resolution binds by source-key overlap instead of by
  path, so a renamed or moved file merges into what it created and heals
  the stored origin. Several sources sharing keys never guess-merge: the
  plan says so and imports everything as new.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 10:56:34 -07:00
Gregory Schier d2d4b80a09 feat(import): merge re-imports from a linked source instead of duplicating (#618) 2026-09-01 11:12:07 -07:00
Gregory Schier f18f93d613 Stage imports before committing (#571) 2026-08-31 10:20:44 -07:00
Gregory Schier 5d1d24870a Import from a URL in the Import Data dialog (#551) 2026-08-15 10:03:43 -07:00
Gregory SchierNguyễn Huỳnh Anh Khoastartsevdenisdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
13a667a9b1 Add commercial use nudge banners (#478)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Nguyễn Huỳnh Anh Khoa <113995598+anhkhoakz@users.noreply.github.com>
Co-authored-by: startsevdenis <mail@startsevds.ru>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 10:23:13 -07:00
Gregory Schier 10559c8f4f Split codebase (#455) 2026-05-07 15:50:10 -07:00