Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
## v1.0.6.43 — Phase 2 Forensic Closure — 2026-08-18

- Re-audited v1.0.6.42 workflow lifecycle and true multiworkflow implementation against the approved Phase-2 contract.
- Made the historical `request_workflow_switch()` compatibility service restart-free instead of retaining the old destructive switch/restart path.
- Hardened lifecycle transaction recovery and mutation blocking against malformed transaction roots and unsafe transaction workflow identities.
- Preserved schema-v2 workspace Task shells when workflow identity is missing or temporarily unavailable, blocking autosave instead of silently dropping persisted Tasks.
- Blocked workflow package mutation when unfinished legacy runtime identity cannot be resolved and blocked new Task/browser starts while a live lifecycle transaction exists.
- Corrected visible workflow semantics from global `ACTIVE` language to `DEFAULT` for the workflow used by newly created Tasks.
- Removed one duplicated staging-directory setup statement in the workflow package loader.
- Preserved v1.0.6.42 multiworkflow architecture, Plugin API 1, Chrome secure-install/runtime, browser profiles, power management, licensing, settings defaults, dependencies, CI and portable packaging.

---

## v1.0.6.42 — Phase 2 Workflow Lifecycle Management + True Multiworkflow — 2026-08-18

- Added strict-newer workflow package Update/Replace with atomic staging, rollback and lifecycle transaction recovery.
- Added workflow Remove and default Deactivate while preserving saved workflow configuration and historical result data.
- Made default workflow activation/switch and normal workflow lifecycle operations restart-free.
- Converted the persisted active workflow into the default for new Tasks; every Task now owns an immutable workflow ID and different workflows may execute concurrently.
- Migrated workspace and TaskRuntimeStore persistence to schema v2 workflow provenance; unresolved legacy recoverable identity fails closed and completed legacy history remains non-fabricated.
- Added workflow-aware Reports filtering/provenance and Dashboard metric aggregation per workflow schema.
- Re-verified the existing Chrome prerequisite, official Google MSI, Authenticode/Google LLC, UAC and Chrome-only guard contracts without changing Chrome implementation.
- Preserved Plugin API 1, licensing, browser-profile architecture, Windows power guard, settings defaults, dependencies, CI and portable packaging.

## v1.0.6.41 — Phase 1 Active-Page Origin Closure — 2026-08-18

- Forensically re-audited the owner-frozen v1.0.6.40 Phase 1 closure against its deterministic active-page ownership contract.
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ cff-version: 1.2.0
title: "VibraPilot — Vib Tools Browser Automation Desktop"
message: "If you reference this software, cite the Vib Tools project."
type: software
version: 1.0.6.41
version: 1.0.6.43
authors:
- name: "Vib Tools"
url: "https://vib.tools/"
Expand Down
22 changes: 22 additions & 0 deletions COMPATIBILITY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
# v1.0.6.43 Phase 2 Forensic Closure Compatibility

- External Workflow Plugin API remains version 1.
- Existing v1.0.6.42 workflow packages, per-Task identities, runtime/workspace schema v2 and Chrome-only behavior are preserved.
- Normal/default workflow switching remains restart-free, including the historical compatibility entry point.
- Corrupt/pending lifecycle state now fails closed rather than allowing package mutation or new browser execution.
- Unresolved or unavailable workspace workflow identity preserves persisted Task shells instead of silently rewriting them away.
- No top-level UI page, dependency, Chrome installer/runtime, licensing, power, CI or packaging architecture change is introduced.

---

# v1.0.6.42 Phase 2 Workflow Lifecycle / Multiworkflow Compatibility

- Baseline compatibility: v1.0.6.41; external Plugin API 1 is unchanged.
- Existing workflow packages remain loadable; same-ID package installation now routes through a strict-newer update path instead of blind replacement.
- Default workflow state is preserved but now controls new Task creation only; existing Tasks keep immutable workflow identity.
- Workspace and runtime storage migrate from schema v1 to v2 while preserving completed legacy history without inventing workflow identity.
- Browser profile isolation, Chrome-only runtime, Chrome secure install, licensing, Windows power management, settings defaults, dependencies, CI and portable packaging are unchanged.
- No new top-level UI page is added.

---

# v1.0.6.41 Phase 1 Active-Page Origin Closure Compatibility

- Baseline compatibility: v1.0.6.40; external Plugin API 1 workflows remain unchanged.
Expand Down
39 changes: 24 additions & 15 deletions DELTA_FILE_LIST.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,36 @@ SHA256SUMS.txt
UPDATE_LOG.md
VERSIONING.md
config/AppConfig/app.py
config/verification/v1.0.6.41_phase1_active_page_origin_closure_scope.json
config/verification/v1.0.6.43_phase2_forensic_closure_scope.json
docs/docs.manifest.ygit
docs/index.md
docs/updates/v1.0.6.41-phase1-active-page-origin-closure.md
docs/verification/V1.0.6.41_PHASE1_ACTIVE_PAGE_ORIGIN_CLOSURE.md
pyproject.toml
scripts/verify_repository.py
src/vibrapilot/backend.py
tests/test_app_config.py
tests/test_v10641_phase1_active_page_origin_closure.py
vibproject.ygit
docs/updates/v1.0.6.43-phase2-forensic-closure.md
docs/verification/V1.0.6.43_PHASE2_FORENSIC_CLOSURE.md
project/CURRENT_PROJECT_STATE.md
project/README.md
project/updates/v1.0.6.39-v1.0.6.40-production-readiness/02_TWO_PHASE_ROADMAP.md
project/updates/v1.0.6.39-v1.0.6.40-production-readiness/03_PHASE_PROGRESS_COMPLETION_LEDGER.md
project/updates/v1.0.6.39-v1.0.6.40-production-readiness/04_ERROR_HANDLING_AUDIT_AND_PLAN.md
project/updates/v1.0.6.39-v1.0.6.40-production-readiness/05_ACTUAL_IMPLEMENTATION_STATUS.md
project/updates/v1.0.6.39-v1.0.6.40-production-readiness/07_ACCEPTANCE_TEST_MATRIX.md
project/updates/v1.0.6.39-v1.0.6.40-production-readiness/08_REQUIREMENTS_TRACEABILITY_MATRIX.md
project/updates/v1.0.6.41-phase1-active-page-origin-closure/00_SCOPE_LOCK.md
project/updates/v1.0.6.41-phase1-active-page-origin-closure/01_FORENSIC_AUDIT_REPORT.md
project/updates/v1.0.6.41-phase1-active-page-origin-closure/02_ROOT_CAUSE_AND_FIX_REPORT.md
project/updates/v1.0.6.41-phase1-active-page-origin-closure/03_VERIFICATION_MATRIX.md
project/updates/v1.0.6.41-phase1-active-page-origin-closure/04_ACTUAL_IMPLEMENTATION_STATUS.md
project/updates/v1.0.6.42-phase2-workflow-lifecycle-multiworkflow/08_PHASE2_PROGRESS_LEDGER.md
project/updates/v1.0.6.42-phase2-workflow-lifecycle-multiworkflow/09_ACTUAL_IMPLEMENTATION_STATUS.md
project/updates/v1.0.6.42-phase2-workflow-lifecycle-multiworkflow/10_FINAL_VERIFICATION_REPORT.md
project/updates/v1.0.6.43-phase2-forensic-closure/00_SCOPE_LOCK.md
project/updates/v1.0.6.43-phase2-forensic-closure/01_FORENSIC_AUDIT_REPORT.md
project/updates/v1.0.6.43-phase2-forensic-closure/02_ROOT_CAUSE_AND_FIX_REPORT.md
project/updates/v1.0.6.43-phase2-forensic-closure/03_VERIFICATION_MATRIX.md
project/updates/v1.0.6.43-phase2-forensic-closure/04_ACTUAL_IMPLEMENTATION_STATUS.md
pyproject.toml
scripts/verify_repository.py
src/vibrapilot/qt_app.py
src/vibrapilot/workflow/plugin_loader.py
src/vibrapilot/workspace_state.py
tests/test_app_config.py
tests/test_v10623_pr06_workflow_state_atomic_switch.py
tests/test_v10624_pr07_workflow_showcase.py
tests/test_v10626_pr09_data_persistence_reporting_compatibility.py
tests/test_v10627_pr10_workflow_error_recovery.py
tests/test_v10642_workflow_lifecycle.py
tests/test_v10643_phase2_forensic_closure.py
vibproject.ygit
79 changes: 41 additions & 38 deletions PATCH_MANIFEST.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,54 @@
# VibraPilot v1.0.6.41 — Phase 1 Active-Page Origin Closure Replace-Ready Patch
# VibraPilot v1.0.6.43 — Phase 2 Forensic Closure Replace-Ready Patch

## Baseline identity
## Official baseline

- Official input: `VibraPilot_Official_v1.0.6.40_Baseline(1).zip`
- Input SHA-256: `b66cd21c1233761dbc6584f173c28017632f795bf16e98afc7eb1ffb2e2e6ad0`
- Version: `1.0.6.40`
- Git branch: `main`
- Git commit: `7e6f4cc7abf49e08d4a94124ebffa97bb7794137`
- Git tree: `8b8b6f8e502011d730ac4508300c25273e3dbab5`
- Uploaded workspace note: five tracked files differ only by line endings; semantic `git diff --ignore-space-at-eol` is empty.
- Input: `VibraPilot_Official_v1.0.6.42_Baseline(1).zip`
- Input SHA-256: `0713798e061b0eef15c1a1d4cb52e1347687f7498419b9ab1a79b3017f31dae1`
- Baseline version: `1.0.6.42`
- Baseline branch commit: `8c3e9a137ecf852aa152dba0590414e7f8f6209d`
- Baseline Git tree: `c61a9864e99659bf0a3d3cb229e1ad6e5e85cb69`
- Target version: `1.0.6.43`

## Confirmed finding
## Corrective scope

`AutomationWorker._origin_from_url()` returned `None` for an omitted port but `443`/`80` for the browser-equivalent explicit default port. In a restored multi-tab context, `_select_preferred_page()` could therefore fail target-origin matching and choose an unrelated last usable tab.
- restart-free historical workflow-switch compatibility service;
- lifecycle transaction root/type and workflow-identity fail-closed validation;
- schema-v2 workspace Task-shell preservation when workflow identity is unresolved/unavailable;
- unresolved legacy unfinished-run package-mutation blocking;
- same-session live lifecycle transaction blocking for package mutation, Task creation and browser start;
- Default Workflow UI semantics replacing residual global `ACTIVE` wording;
- removal of one duplicated staging-directory setup statement.

## Production correction scope
## Production source changes

- `src/vibrapilot/backend.py`
- Method: `AutomationWorker._origin_from_url`
- Default HTTPS `:443` → canonical omitted/default representation
- Default HTTP `:80` → canonical omitted/default representation
- Non-default ports remain significant
- Malformed-port fail-safe remains unchanged
- `src/vibrapilot/qt_app.py`
- `src/vibrapilot/workflow/plugin_loader.py`
- `src/vibrapilot/workspace_state.py`

## Frozen scope
Chrome prerequisite/runtime/installer/AuthentiCode, Plugin API 1, backend worker logic, runtime DB schema-v2 implementation, power, licensing, settings defaults, dependencies, CI and portable packaging are frozen from v1.0.6.42.

No changes are authorized to Qt UI/UX, Windows power implementation, browser settings, workflows/plugin lifecycle, licensing, persistence schemas, dependencies, CI, portable-release architecture or Phase 2 features.
## Verification evidence

## Verification state
- v1.0.6.42 baseline: repository verifier PASS; pytest 541 passed / 6 skipped / 105 subtests; unittest 201 OK / 6 skipped; compileall PASS.
- tests-first v1.0.6.43 reproduction: 8 concrete failures reproduced / 1 guard already passing.
- corrected v1.0.6.43 closure tests: 9 PASS.
- targeted historical/current correction gate: 123 PASS.
- broader Phase-1/Phase-2/persistence/Chrome gate: 190 PASS.
- frozen SHA audit: PASS.
- metadata/current scope tests: 13 PASS; repository verifier PASS.
- final full pytest: 550 passed, 6 skipped, 105 subtests passed.
- final full unittest: 201 OK, 6 skipped.
- compileall: PASS.
- `git diff --check`: PASS.
- deleted files: 0.

- Tests-first reproduction: **2 FAILED / 2 PASSED** before the fix.
- Targeted correction regression: **17 PASSED**.
- Complete Phase-1 work-package gate: **28 PASSED**.
- Metadata/scope integration: **8 PASSED** + repository verifier **PASS**.
- Final full pytest: **510 passed, 6 skipped, 105 subtests passed**.
- Final unittest: **201 OK, 6 skipped**.
- compileall: **PASS**.
- Public changed/new files: **23**.
- Private `project/` changed/new files: **13**.
- Total replace-ready delta entries: **36**.
- Deleted files: **0**.
- Delta-apply sealing: recorded after package construction.
## Delta inventory

## Phase 2
- Public changed/new files: 30
- Private/local `project/` files: 15
- Total Delta entries: 45
- `project/**` is local/private only and must never be staged/pushed.

**NOT STARTED.** Planned version moves from v1.0.6.41 to v1.0.6.42 because v1.0.6.41 is consumed by this forensic seal.
## External gates

## Private development documentation

`project/**` remains local/private, is ignored by Git, and must never be staged or pushed.
Windows live acceptance and GitHub v1.0.6.43 CI remain PENDING and are not claimed PASS.
36 changes: 36 additions & 0 deletions PROJECT_STRUCTURE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,39 @@
# Project Structure — v1.0.6.43 Phase 2 Forensic Closure

```text
src/vibrapilot/qt_app.py
Restart-free compatibility switch; live lifecycle blocking; legacy-run reference safety; Default Workflow UI wording.
src/vibrapilot/workflow/plugin_loader.py
Lifecycle-root/type/identity fail-closed validation; duplicate staging setup removed.
src/vibrapilot/workspace_state.py
Schema-v2 unresolved workflow Task-shell preservation and autosave blocking.
```

All other v1.0.6.42 production architecture remains frozen.

---

# Project Structure — v1.0.6.42 Phase 2

```text
src/vibrapilot/workflow/plugin_loader.py
Workflow package lifecycle: strict-newer update, staging/swap rollback, transaction recovery, remove.
src/vibrapilot/workflow/state.py
Restart-free default workflow commit/deactivation.
src/vibrapilot/qt_app.py
Per-Task workflow selection/binding, lifecycle actions, Reports/Dashboard multiworkflow UI integration.
src/vibrapilot/workspace_state.py
Workspace schema v2 per-Task workflow provenance.
src/vibrapilot/task_runtime_store.py
Runtime DB schema v2 run/result workflow provenance.
src/vibrapilot/backend.py
Worker report rows include immutable Task workflow identity.
```

Chrome secure-install, licensing, power, browser-profile, dependency, CI and portable-release files remain outside the Phase-2 production-change surface.

---

# Project Structure — v1.0.6.41 Phase 1 Active-Page Origin Closure

```text
Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# VibraPilot v1.0.6.43 — Phase 2 Forensic Closure

v1.0.6.43 is a scope-locked corrective seal over v1.0.6.42. It preserves Workflow Update/Remove/Deactivate, restart-free lifecycle, immutable per-Task workflow identity and true simultaneous multiworkflow execution while closing concrete lifecycle-transaction, legacy-recovery, workspace-preservation and Default Workflow UI semantic gaps. Chrome prerequisite/secure-install, Plugin API 1, licensing, browser-profile, power, dependency, CI and packaging architecture remain unchanged.

---

# VibraPilot v1.0.6.42 — Workflow Lifecycle + True Multiworkflow

v1.0.6.42 completes the approved Phase 2 production update: trusted workflow packages can be updated, removed or deactivated safely without normal app restart; the persisted default workflow applies only to newly created Tasks; each Task owns an immutable workflow identity; and different workflows can execute concurrently under the existing Task/profile isolation rules. Workspace/runtime persistence, Reports and Dashboard now retain workflow provenance. The existing Google Chrome prerequisite and secure installer implementation remains unchanged and fail-closed.

# VibraPilot v1.0.6.41 — Phase 1 Active-Page Origin Closure

v1.0.6.41 is a scope-locked forensic seal over v1.0.6.40. It corrects one proven deterministic active-page ownership defect: browser-equivalent default HTTP/HTTPS ports are now canonicalized before target-origin comparison, preventing an explicit `:80`/`:443` workflow page from losing ownership to an unrelated restored tab. All other Phase 1 runtime behavior remains frozen. Phase 2 is not implemented and is now planned for v1.0.6.42.
Expand Down
28 changes: 28 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
# Current Roadmap — v1.0.6.43 Phase 2 Forensic Closure

## Phase 2 status

**LOCAL CODE + AUTOMATED FORENSIC VERIFICATION COMPLETE / WINDOWS LIVE ACCEPTANCE AND GITHUB v1.0.6.43 CI PENDING.** v1.0.6.43 is limited to concrete defects reproduced while auditing the owner-frozen v1.0.6.42 Phase-2 implementation. No new feature phase is introduced.

## Closure scope

Restart-free compatibility switching, lifecycle transaction fail-closed safety, workspace Task-shell preservation, unresolved legacy-run mutation blocking, live transaction execution blocking and Default Workflow UI semantics. All Chrome/Plugin API/licensing/power/dependency/CI/packaging surfaces remain frozen.

---

# Current Roadmap — v1.0.6.42 Phase 2

## Phase 2 — Workflow Lifecycle Management & True Multiworkflow

**LOCAL CODE + AUTOMATED VERIFICATION COMPLETE / WINDOWS LIVE ACCEPTANCE PENDING.** v1.0.6.42 completes strict-newer workflow update/replace, package remove, default deactivation, restart-free normal lifecycle operations, immutable per-Task workflow identity, simultaneous different-workflow Tasks, workflow-aware persistence/recovery/reporting and per-workflow Dashboard metrics.

## Chrome final-acceptance track

The existing v1.0.6.32 Chrome prerequisite/secure-install implementation is preserved. Source-level contracts are re-verified; real Windows Chrome/UAC and 1/2/4 Task acceptance remains owner evidence before public release closure.

## Next gate

Final repository verification → Replace-Ready Delta → owner Windows acceptance → GitHub feature branch/CI. No later feature phase starts automatically.

---

# Current Roadmap — v1.0.6.41 Phase 1 Active-Page Origin Closure

## Phase 1 seal — v1.0.6.41
Expand Down
Loading