Skip to content

Next programs - #40

Open
cyberphantom52 wants to merge 37 commits into
nextfrom
next_programs
Open

cyberphantom52 wants to merge 37 commits into
nextfrom
next_programs

Conversation

@cyberphantom52

Copy link
Copy Markdown
Member

No description provided.

Keep startup cleanup inside the owner lock, recover Virgo preparation after mount failures or cancellation, and finish extraction before removing its staging directory. Preserve consumer-driven Operation execution. Verified core library tests with default features and without FVS, including paused cleanup and cleanup failure coverage.
Return WineBridgeClient directly from attachment and startup. Keep lifecycle functions in the environment module and remove RPC forwarding methods. Existing core library tests pass; no-FVS compilation checked.
Persist backend on BottleState and shared settings as EnvironmentState. Move registration UUIDs out of LaunchSpec and pass process-group IDs explicitly. Bottle format v2 has no legacy migration. Existing core suites pass with and without FVS; the uncommitted CLI adaptation compiles.
Edit callbacks mutate only owner metadata, environment variables and wrappers, returning their result after save and publication. Component and dependency operations own installer reconciliation separately. CLI companion edits remain uncommitted. Existing core tests and CLI compilation pass; no new tests added.
Reject recipes with unsupported inverses before changing files. Return file and WineBridge removal failures while preserving missing-file and missing-override idempotence. Existing core library tests pass; no new tests added.
Read IDs through current state and report deletion without caching a UUID. Retain the managed root directly and validate restore identity against a local state view. Existing tests adapted to the new field; no tests added. Core tests and no-FVS CLI compilation pass.
Bottle delegates publication, persistence, coordinated edits, software installation and runtime operations to Environment<BottleState>. Reuse WineBridgeClient directly and validate loaded directory identity. Move lifecycle creation and deletion below the manager. Existing core suites pass with and without FVS; CLI compiles. No new tests.
Capture and restore the complete owner root under its environment lock. Load the owner-specific configuration file and validate identity, backend and state before publication, recovering the checkpoint on failure. Existing core tests and CLI compilation pass. No new tests.
Add ProgramState, Program and ProgramManager backed by shared Environment operations and program.toml. Generalize registry loading, interning and observation for both owner types. Standalone APIs are FVS-gated. Existing core and CLI suites pass with and without FVS; standalone CLI adaptations remain uncommitted. No new tests.
Aggregate bottle registrations and standalone programs in listing, observation and search. Bind launch-definition lookup and process actions to the owning handle. Existing full core and CLI suites pass with default features (25 core, 15 CLI) and without FVS (24 core, 15 CLI). No new tests. Companion CLI edits remain uncommitted; Wine/FVS runtime integration is unverified.
@cyberphantom52
cyberphantom52 added this pull request to stack #41 September 13, 2026 15:42
Persist and publish successful software application even when cancellation arrives afterward. Preserve Standard installer cancellation and partial-write behavior.

Move bottle-specific edits into bottle, centralize pure selection changes on EnvironmentState, skip unchanged metadata edits, and clarify install_dependency and validate names.

Validation: existing core and CLI tests pass with default features (25 core, 15 CLI) and without default features (24 core, 15 CLI). Formatting and diff checks pass. No tests added.
Resolve downloaded addons in selection operations and remove the second catalog-comparison pass. Validate dependency uniqueness with the rest of persisted environment state; retain backend restrictions and payload checks.

Validation: existing core library tests passed with default features (25) and without default features (24), using --locked --offline. Core formatting and staged diff checks passed. No new tests added, as requested.
Share ProgramSpec independently of bottle and standalone owner modules. Preserve its public constructors and wire representation, and report malformed definitions through Error::InvalidProgram.

Validation: existing core library tests passed with default features (25) and without default features (24), using --locked --offline. Core formatting and staged diff checks passed. No new tests added, as requested.
Move WineBridge discovery cleanup from history capture into backend release after runtime shutdown and Virgo unmounting. Release still clears persistent upper discovery when the mountpoint is absent. Cleanup errors prevent snapshot capture; runtime shutdown helpers retain their best-effort behavior.

Validation: cargo fmt -p bottles-core; existing core library tests passed with default features (25) and --no-default-features (24), using --locked --offline. Staged paths and diff checks passed. No new tests added as requested; cleanup ordering and locations inspected in code. Wine/FVS integration unavailable on this host.
Merge both manager streams without suppressing their first publications. A standalone membership change between Library initial emission and the first standalone poll now reaches Library; duplicate initial snapshots are permitted and documented.

Validation: cargo fmt -p bottles-core; existing core library tests passed with default features (25) and --no-default-features (24), using --locked --offline. Staged paths and diff checks passed. No new tests added as requested; stream polling behavior reviewed in code.
Insert each newly created environment into manager-owned membership and return that same handle. Registry lookup and handle cloning preserve shared identity without registration substituting a prior owner. BottleManager::open and ProgramManager::open are synchronous lookups; update core deletion callers and documentation.

Validation: cargo fmt -p bottles-core; existing core library tests passed with default features (25) and --no-default-features (24), using --locked --offline. Reviewed all core open and registration call sites. Staged paths and diff checks passed. No new tests added; consumer adaptations excluded as requested.
Remove refactor-specific architecture notes, registration details, and the added standalone example. Retain only corrections to existing overview text and the original example for current feature availability, state editing, launch signatures, and program registration.

Validation: compared README with baseline 1b69ae1 and current core API definitions; staged diff check passed. Documentation-only change; no tests added or run.
@cyberphantom52
cyberphantom52 marked this pull request as ready for review September 19, 2026 16:47
@cyberphantom52
cyberphantom52 requested review from mirkobrombin and a lite review from Copilot September 19, 2026 16:47

This comment was marked as low quality.

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