Feat v0.9.4 package adoption roles (#78)
All checks were successful
CI/CD / detect-changes (push) Successful in 3s
CI/CD / test-frontend (push) Has been skipped
CI/CD / test-runners (push) Has been skipped
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-go-pg (push) Successful in 2m55s
CI/CD / test-sqlite (push) Successful in 3m7s
CI/CD / build-and-deploy (push) Successful in 1m19s

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #78.
This commit is contained in:
2026-04-03 16:23:43 +00:00
committed by xcaliber
parent 0661e1d768
commit 6b9ce92103
19 changed files with 2268 additions and 48 deletions

View File

@@ -93,6 +93,14 @@ type PackageStore interface {
// DeleteTeamSettings removes team-scoped overrides, reverting to global defaults.
DeleteTeamSettings(ctx context.Context, pkgID, teamID string) error
// ── v0.9.4 — Package Adoption ───────────────
// ListAdoptable returns global, adoptable, enabled packages.
ListAdoptable(ctx context.Context) ([]PackageRegistration, error)
// GetByAdoptedFrom returns a team's adopted copy of a source package, or nil.
GetByAdoptedFrom(ctx context.Context, sourceID, teamID string) (*PackageRegistration, error)
}
// PackageRegistration is a row from the packages table.
@@ -114,6 +122,8 @@ type PackageRegistration struct {
SchemaVersion int `json:"schema_version" db:"schema_version"`
PackageSettings json.RawMessage `json:"package_settings" db:"package_settings"`
Source string `json:"source" db:"source"`
Adoptable bool `json:"adoptable" db:"adoptable"`
AdoptedFrom *string `json:"adopted_from,omitempty" db:"adopted_from"`
InstalledAt string `json:"installed_at" db:"installed_at"`
UpdatedAt string `json:"updated_at" db:"updated_at"`
}