Skip to content

Import an exact inventory identity from its selected source with retry - #288

Merged
loganj merged 2 commits into
mainfrom
feat/inventory-card-import
Sep 29, 2026
Merged

loganj merged 2 commits into
mainfrom
feat/inventory-card-import

Conversation

@loganj

@loganj loganj commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

🤖

Summary

  • An identity under Available to import now has an Import action on its card. It opens the existing import review with that exact identity and its local source already selected.
  • If the source cannot be read, the card shows the error and a retry. You can still change the source.

Details

  • Import appears once for each public key. If more than one old installation has the identity, you choose the source explicitly.
  • Import keeps the selected identity and private key. It needs a destination and a new preview. The saved agent is configured and stopped. Import does not start the agent, invite it anywhere, or change the old installation.
  • If this computer already has the identity, you cannot import it again into another community. The card does not offer Import for it. Clone for this case arrives in Clone inventory identities through reviewed text and fresh identity creation #289. Native code checks this rule both when it prepares an import and when it saves one.
  • The card Import replaces the old installation browser. One case keeps it: if an imported agent is missing its team instructions, Repair team import from another installation stays available. It lists only agents that need that repair, and it never offers an ordinary import.
  • Based on Set up incomplete inventory identities through a working Use here dialog #287.

Screenshots

Captured from the browser test fixture at this PR's head.

Agents from another installation appear as cards with Import

Agents from another installation appear as cards with Import

Import review names the source and the destination community

Import review names the source and the destination community

With no selected community, import review asks for a destination community first

With no selected community, import review asks for a destination community first

@loganj
loganj force-pushed the feat/inventory-card-import branch from e88ada9 to f39602d Compare September 25, 2026 19:38
@loganj
loganj force-pushed the feat/inventory-use-here branch 2 times, most recently from c1d7711 to d2b916e Compare September 26, 2026 15:06
@loganj
loganj force-pushed the feat/inventory-card-import branch from f39602d to 60716f0 Compare September 26, 2026 15:06
@loganj
loganj marked this pull request as ready for review September 26, 2026 15:11
@loganj
loganj requested review from a team, comp615 and wesbillman as code owners September 26, 2026 15:11

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Star Lord automated source review, posted via Wes’s account.

Reviewed head 60716f033eecd5cd82c48c087e2a758eb1a5aa95 against base/merge-base d2b916ea213bad986ac561d93dcd93a3ca2a8887.

One P2 finding: the new selected-identity dialog removes the destination-entry path when no community is selected (inline below). Preserve an explicit destination choice and obtain a fresh preview before enabling Import.

I inspected the complete 13-file delta and traced inventory selection, source retry/switching, preview/write fencing, repair-only fallback, and the existing native import boundary. The native path retains source/destination binding, duplicate-key checks at preparation and save, and configured/stopped persistence. Earlier stacked-base findings are not duplicated here.

Validation: source-only review of immutable, hash-verified extracts; no dirty working-tree inputs. No tests, builds, PR-code execution, app launches, credential access or CI checks. Browser/native behavior and human acceptance remain unverified. This is a non-blocking COMMENT, not approval or merge authorization.

Comment thread src/bundled/agents/AgentImport.tsx
@loganj
loganj force-pushed the feat/inventory-card-import branch from 60716f0 to ff3df8f Compare September 26, 2026 15:45
@loganj
loganj force-pushed the feat/inventory-use-here branch from d2b916e to 1dd0e01 Compare September 26, 2026 15:45
@loganj
loganj force-pushed the feat/inventory-card-import branch from ff3df8f to bafa103 Compare September 28, 2026 15:12
@loganj
loganj force-pushed the feat/inventory-use-here branch from 4a8e173 to 41b95c8 Compare September 28, 2026 15:12
@loganj
loganj force-pushed the feat/inventory-card-import branch from bafa103 to dbb02bc Compare September 28, 2026 16:43
@loganj
loganj force-pushed the feat/inventory-use-here branch from 41b95c8 to de596d4 Compare September 28, 2026 16:43
@loganj
loganj marked this pull request as draft September 28, 2026 19:04
@loganj
loganj force-pushed the feat/inventory-card-import branch from dbb02bc to f151b52 Compare September 28, 2026 19:57
@loganj
loganj force-pushed the feat/inventory-use-here branch from de596d4 to 69c3594 Compare September 28, 2026 19:57
@loganj
loganj force-pushed the feat/inventory-card-import branch from f151b52 to fc4e551 Compare September 28, 2026 20:11
@loganj
loganj force-pushed the feat/inventory-use-here branch from 69c3594 to 441274d Compare September 28, 2026 20:11
@loganj
loganj force-pushed the feat/inventory-card-import branch from fc4e551 to 9d550e9 Compare September 28, 2026 20:36
@loganj
loganj force-pushed the feat/inventory-use-here branch 2 times, most recently from 973f265 to 3814d98 Compare September 28, 2026 21:28
@loganj
loganj force-pushed the feat/inventory-card-import branch from 9d550e9 to cace21a Compare September 28, 2026 21:28
@loganj
loganj force-pushed the feat/inventory-use-here branch from 3814d98 to baefabc Compare September 28, 2026 21:48
@loganj
loganj force-pushed the feat/inventory-card-import branch 2 times, most recently from 2f0505c to b49e8b5 Compare September 29, 2026 14:59
@loganj
loganj force-pushed the feat/inventory-use-here branch 2 times, most recently from 0209344 to 91e5f77 Compare September 29, 2026 15:29
@loganj
loganj force-pushed the feat/inventory-card-import branch from b49e8b5 to 299d9b1 Compare September 29, 2026 15:29
@loganj
loganj marked this pull request as ready for review September 29, 2026 15:58
@loganj
loganj force-pushed the feat/inventory-card-import branch from 299d9b1 to d9d83f2 Compare September 29, 2026 17:13

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

No actionable code blockers found; ready for code approval. Reviewed head d9d83f2069bd397bfdd22c5852a1a01d6ba3d5d0 against base/merge-base 31a89276a48d254ff550aef3c8689b5a6dee51f0 (#287).

The previous destination-entry finding is addressed: Personal space now permits an explicit destination, edits invalidate the old preview, and the mounted card-to-dialog regression reaches import after a fresh preview. Rechecked exact-key/source selection, retry, destination-change cleanup, repair-only fallback, and the unchanged native duplicate-custody/source-binding checks. Imports remain configured and stopped. Independent bounded UI/lifecycle review found no additional blocker.

Validation: successful hosted CI tested merge f21f7a3eeaabda1f415add08e3bf4b9eea5c18b8 with exactly those head/base parents. JavaScript passed 433 files / 5,162 tests, including the repaired flow; native import-boundary tests, Rust/tool integration, Chromium/WebKit journeys, measurements, DCO and security checks passed. Windows validation was skipped. The older failed aggregate belongs to a superseded cancelled workflow. No broad suites rerun locally.

Merge caveats: this still targets the open #287 feature branch, not main; land/retarget in stack order and recheck the resulting base. Browser fixtures and CI do not establish real native credential/storage import or human acceptance; confirm that required acceptance before treating this as fully validated. I did not launch the app or touch credentials. Inspected the full feature diff, PR text and three attached screenshots.

This is a readiness COMMENT, not approval or merge authorization.

@loganj
loganj force-pushed the feat/inventory-use-here branch from 31a8927 to 0317113 Compare September 29, 2026 18:11
Base automatically changed from feat/inventory-use-here to main September 29, 2026 18:26
Larry added 2 commits September 29, 2026 14:26
Signed-off-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Signed-off-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
@loganj
loganj force-pushed the feat/inventory-card-import branch from d9d83f2 to 6f8d4a9 Compare September 29, 2026 18:27
@loganj
loganj merged commit 6b4de53 into main Sep 29, 2026
20 checks passed
@loganj
loganj deleted the feat/inventory-card-import branch September 29, 2026 18:37
johnmatthewtennant pushed a commit that referenced this pull request Sep 29, 2026
* origin/main:
  Import an exact inventory identity from its selected source with retry (#288)

Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>

# Conflicts:
#	src/bundled/agents/AgentsPage.tsx
johnmatthewtennant pushed a commit that referenced this pull request Sep 29, 2026
* origin/main:
  feat(channels): archive and delete channels from settings (#385)
  feat(updates): add in-app auto-updates with restart toast (#312)
  fix(ui): keep background loading from shifting populated views (#418)
  Improve member and agent identity previews (#412)
  Fix initial emoji autocomplete selection (#419)
  Add community membership settings (#348)
  Keep nested replies compact and place actions above message text (#367)
  Import an exact inventory identity from its selected source with retry (#288)
  ci: add gated macOS preview updater feed promotion (#414)
  Set up incomplete inventory identities through a working Use here dialog (#287)

Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>

# Conflicts:
#	src/app/App.tsx
TheSentinel454 pushed a commit that referenced this pull request Sep 29, 2026
* origin/main: (58 commits)
  flake fix: keep restored reading anchor out of bottom follow (WebKit scroll measurement) (#407)
  Replace fixed browser-test waits with conditions, gates and the clock (#373)
  feat(updates): show installed version in Software Updates settings (#430)
  fix(desktop): allow deep-link delivery to the main webview (#432)
  feat(shell): open your profile from the account menu avatar (#390)
  Polish top bar and animate contextual sidebar toggle (#360)
  fix(profiles): preserve nonlocal agent identity in profile fallback (#327)
  test(agents): pause the status poll around the failed-Stop checks (#431)
  fix(sidebar): paint channel rows with the scroller contents (#428)
  feat(channels): archive and delete channels from settings (#385)
  feat(updates): add in-app auto-updates with restart toast (#312)
  fix(ui): keep background loading from shifting populated views (#418)
  Improve member and agent identity previews (#412)
  Fix initial emoji autocomplete selection (#419)
  Add community membership settings (#348)
  Keep nested replies compact and place actions above message text (#367)
  Import an exact inventory identity from its selected source with retry (#288)
  ci: add gated macOS preview updater feed promotion (#414)
  Set up incomplete inventory identities through a working Use here dialog (#287)
  Show saved local and relay inventory while retaining existing import controls (#286)
  ...
TheSentinel454 pushed a commit that referenced this pull request Sep 29, 2026
* origin/main: (58 commits)
  flake fix: keep restored reading anchor out of bottom follow (WebKit scroll measurement) (#407)
  Replace fixed browser-test waits with conditions, gates and the clock (#373)
  feat(updates): show installed version in Software Updates settings (#430)
  fix(desktop): allow deep-link delivery to the main webview (#432)
  feat(shell): open your profile from the account menu avatar (#390)
  Polish top bar and animate contextual sidebar toggle (#360)
  fix(profiles): preserve nonlocal agent identity in profile fallback (#327)
  test(agents): pause the status poll around the failed-Stop checks (#431)
  fix(sidebar): paint channel rows with the scroller contents (#428)
  feat(channels): archive and delete channels from settings (#385)
  feat(updates): add in-app auto-updates with restart toast (#312)
  fix(ui): keep background loading from shifting populated views (#418)
  Improve member and agent identity previews (#412)
  Fix initial emoji autocomplete selection (#419)
  Add community membership settings (#348)
  Keep nested replies compact and place actions above message text (#367)
  Import an exact inventory identity from its selected source with retry (#288)
  ci: add gated macOS preview updater feed promotion (#414)
  Set up incomplete inventory identities through a working Use here dialog (#287)
  Show saved local and relay inventory while retaining existing import controls (#286)
  ...

Signed-off-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
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.

2 participants