Skip to content

feat: simplify Skill Hub sharing and Basic/VM transfers - #415

Merged
devSejung merged 4 commits into
mainfrom
feature/skill-hub-sharing-policy
Oct 28, 2026
Merged

devSejung merged 4 commits into
mainfrom
feature/skill-hub-sharing-policy

Conversation

@devSejung

@devSejung devSejung commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

Closes #406

What Problem This Solves

Ordinary employees, including users with no organization, could hit namespace permissions and visibility ceilings when publishing a skill. Basic and VM transfers, existing Public skill updates, uncertain upload recovery, and shared-room access also followed conflicting rules.

Why This Change Was Made

Implement the approved policy through one employee catalog and the existing private artifact registry. New skills default to Public for active company accounts; Selected and Private remain explicit choices. Existing eligible skills move to Public once without overriding later sharing changes. Native namespaces remain a private artifact detail rather than an employee permission boundary.

The catalog owns sharing, ownership, metadata, Trash, and auditing. The registry owns immutable versions, original archives, historical malware evidence, and confirmed physical deletion. Registry identity is reserved and durably bound before uploading bytes, so canceled first publications can also be cleaned up.

User Impact

  • Publish without creating or choosing a namespace. Select any active Team, Group, Part, or individual, including organizations the publisher does not belong to. Public still requires an active signed-in company account.
  • Set an icon, description, and up to five tags. Keep one owner, accepted ownership transfers, visible history, 30-day Trash recovery, and minimal audit records for one year after physical purge. Changes made using administrator authority require a recorded reason.
  • Publish and install explicitly from/to Basic or the named connected VM. Saved VMs and equal package names retain independent identities; replacement requires the inspected target and installed manifest revision. A target switch produces a recoverable error.
  • Recover the original ZIP, operation ID, and edited draft after an uncertain result. Reopening another skill cannot apply an older request to the new draft. Workspace publication uses the same styled dialog from both Skills and Skill Hub.
  • Read English or Korean guidance, including command replies selected with /skillhub --lang=en or --lang=ko. Raw failure diagnostics and request IDs remain available. Narrow mobile sharing controls stay inside the dialog.
  • Heuristic warnings and unverified scans do not block sharing. Confirmed malware blocks its exact immutable version, including after rescanning. Shared rooms use Public Hub skills only, rechecked before subsequent runs.
  • Commands and tool recommendations now select the catalog current publication, including lower-numbered new releases. Uncertain ZIP requests preserve their original bytes and operation ID rather than creating a duplicate after file reselection.

Evidence

Based on main d46f20ff0a70e8e76f1060082168731783181ac9. Current head: 7a6eb9ca311916aff78bd55b0be87bb17ec6705f; tree c0539e6ac9b656e6c2a47da82a9deba2d81a3f6e.

Independent review covered the complete implementation and fresh scoped reviews of every follow-up. All accepted P0–P2 findings have been addressed. The workspace cancellation repair preserves the draft and selected target while issuing a fresh operation ID after confirmed cancellation.

Validation used task-owned Ubuntu Docker, Node 24.18.0, pnpm 11.15.1 and Chromium 151:

  • Implementation checks: five affected tsgo projects, typed lint, formatting, import cycles, script declarations, source i18n verification, 551 focused regressions, 44 administrator-plugin tests, 68 Chromium scenarios and three actual Native/BFF/Gateway/SSH live tests. Ordinary members without organizations complete Basic/VM publish, download and install flows; migrated Public updates preserve identity and old bytes.
  • Official Gateway and UI builds, finalized compressed sidecars and unchanged performance budgets passed. The cancellation follow-up also passed both UI type checks, ten recovery unit tests, two targeted English/Korean browser cases and the official UI build.
  • The hosted shared-registry UI failure was repaired at the test routing owner: four module-resetting producer suites now use the existing private module/DOM project. The mutation consumer remains shared. The actual CI command pnpm --dir ui test --maxWorkers 3 passed all 707 files / 9,963 tests with one existing skip; six routing checks, lint and formatting passed. The local pre-fix full run also passed, so the hosted order-dependent failure is not claimed as locally reproduced.
  • The hosted three-case compaction failure was an inaccurate fixture capability declaration. The existing positive automatic-recovery and before/after-hook assertions remain unchanged. All 124 hook tests, the original three cases, typed lint and formatting passed; production permission checks remain unchanged.
  • Registry source/image retains its completed 135 JUnit, 18 actual PostgreSQL/local-storage managed, 57 stock-native upgrade/Flyway/backup-restore scenarios and image save/checksum/load identity.

The current head's hosted CI is pending. No merge or deployment is included.

Proof boundaries: seeded authentication does not prove company SSO. VM proof uses a task-owned real Linux SSH fixture rather than a company production VM. Credentialed S3 and paired production Control/Registry restoration retain separate operational proof. Common host command pre-authentication retains its existing English text.

Shared-room filesystem masks retain real Docker evidence for matching source owners, with fresh Linux real-filesystem regressions for the corrected final guard. An additional whole-final-source Docker room rerun was blocked by the tool safety filter and is not claimed as passing.

English Basic workspace publication, default Public:

English Basic workspace publication

Korean VM installation on mobile, with Basic and VM kept independent:

Korean VM installation on mobile

@devSejung
devSejung marked this pull request as ready for review October 28, 2026 06:00
@devSejung
devSejung merged commit 99047e7 into main Oct 28, 2026
78 checks passed
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.

Simplify Skill Hub sharing and validate ordinary-member Basic and VM workflows

1 participant