Skip to content
Draft
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
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Generated Python, environment, test and build artifacts
__pycache__/
*.py[cod]
.pytest_cache/
.venv/
venv/
build/
dist/
76 changes: 47 additions & 29 deletions BASELINE_MANIFEST.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,59 @@
project:
name: OpenInvoice
status: windows_packaging_remediation
repository: vibtools/OpenInvoice

baseline:
version: 0.1.0-draft
status: draft
architecture_changes_require_acr: true
ai_can_approve_changes: false
direct_push_to_main: false
validation:
phase_0a_gate: approved
phase_0b_gate: approved_with_conditions
phase_0b1_gate: remediation_required
phase_0b2_gate: not_approved
phase_0b3_status: blocked
target_windows_validation_complete: false
current_phase: 0B.3
version: 1.0.0
status: approved
candidate_version: 1.0.0-candidate.1
prepared_from_commit: 4cfc3cb5de400d4459cc5fd691a208abc185018f
candidate_head_sha: 81d393c494557d7240e43bf17f8ca4ebe8b105c3
prepared_at: 2026-07-23
approved_at: 2026-07-24
approval_record: docs/reviews/PHASE_0C_APPROVAL_RECORD.md
human_approval_required: true

phase_gates:
phase_0a: approved
phase_0b: approved_with_conditions
phase_0b1: remediation_required
phase_0b2: not_approved
phase_0b3: approved_by_human
phase_0c: approved_by_human

evidence:
phase_0b3_source_integration: repository_verified
phase_0b3_windows_validation: human_attested
phase_0b3_independent_reexecution_in_phase_0c: false
phase_0c_technical_validation: human_attested_from_recorded_local_execution
phase_0c_github_state: repository_verified

architecture:
domain_model: [workspace, run, job, attempt]
workspace_isolation: required
domain_model:
- workspace
- run
- job
- attempt
workspace_isolation: hybrid_control_and_workspace_databases
execution_model: global_bounded_engine
queue_model: workspace_scoped_logical_queues
database_direction: hybrid_control_and_workspace
provider_model: capability_based_adapter
run_configuration: immutable_snapshot
secrets: operating_system_credential_vault
scheduler_boundary: trigger_only
uncertain_outcomes: reconcile_before_retry
packaging: windows_onedir
ui_pattern: workflow_oriented_progressive_disclosure
implementation:
production_code_allowed: false
disposable_spike_code_allowed: true
dependency_adoption_allowed: false
candidate_runtime_dependencies:
tzdata:
status: proposed
purpose: reliable_iana_timezone_support_on_windows
production_adoption: pending_phase_0c_human_approval
current_phase: phase_0b3

governance:
human_approval_required: true
architecture_changes_require_acr: true
architecture_change_implemented: false
phase_0b3_gate_recommendation: blocked_pending_target_windows_execution
ai_can_approve_changes: false
direct_push_to_main: false
baseline_tag_authorized: true
baseline_tag_created: false

implementation:
production_code_allowed: false
next_phase_authorized: true
production_lockfile_allowed: false
43 changes: 42 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,34 @@

## Unreleased

### Phase 0C approval

#### Added

- Human Architecture Owner and Final Approver record for baseline `1.0.0`.
- Final dispositions for ADR-0001 through ADR-0006 and all 13 dependency directions.

#### Changed

- Approved candidate `1.0.0-candidate.1` as controlled baseline `1.0.0`.
- Authorized `baseline-v1.0.0` creation after reviewed merge and authorized Phase 1 repository-governance/CI work after baseline finalization.
- Retained all ADR validation conditions and unresolved product, performance, accessibility, backup, provider and trademark decisions.

#### Fixed

- Removed tracked Python bytecode and added repository ignore rules for generated Python, environment, test and build artifacts.

#### Security

- Production feature code, production dependency versions, production installation and production lockfile remain unauthorized.
- No architecture change was implemented and no ACR was required.

### Phase 0B.3

- Added deterministic PyInstaller/Tcl-Tk packaging diagnostics and isolated build roots.
- Added packaged credential, timezone, and scheduler restart validation gates.
- No production dependency or architecture change was approved.


### Added

- Phase 0B.2 remediation report and human-review checklist.
Expand All @@ -35,3 +56,23 @@

- Credential validation remains synthetic only and requires deletion plus secret scanning.
- No real credentials, customer data, provider operations, executables, databases, build output, or virtual environments are included in the update package.

### Phase 0C candidate

#### Added

- Controlled architecture, UX, engineering, security, operations, evidence, dependency, and traceability documentation.
- Phase 0B.3 human approval record with explicit evidence classification.
- Baseline approval packet for candidate `1.0.0-candidate.1`.
- Phase 0C overview and exact evidence-taxonomy documentation.

#### Changed

- Reconciled preparation-state Phase 0B.3 status with the later Human Architecture Owner approval.
- Advanced project metadata to Phase 0C candidate status without authorizing production implementation.
- Reconciled the requirements catalog to Approved, Proposed, Deferred and Rejected statuses.
- Preserved historical Phase 0B.3 blocked reports while recording the later human approval separately.

#### Security

- Consolidated fail-closed credential storage, redaction, diagnostic minimization, plugin restriction, and uncertain-outcome rules.
30 changes: 30 additions & 0 deletions DEPENDENCIES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Dependency Direction Summary

The Human Architecture Owner approved the following Phase 0C directions on 2026-07-24. These decisions approve boundaries and Phase 1 evaluation scope only. They do not approve exact versions, create a lockfile, authorize production installation or permit unrestricted production imports.

## Approved for Phase 1 evaluation or development tooling

- PyInstaller — Windows `onedir` packaging tooling.
- pytest — development/test runner only.
- Ruff — development/CI lint and formatting only.
- uv — build/CI and lock-management evaluation.
- SQLAlchemy — infrastructure persistence evaluation; never the domain model.
- Alembic — infrastructure migration evaluation.
- HTTPX — provider transport evaluation behind adapters.

## Approved conditional candidates

- CustomTkinter — presentation shell only; bounded data views, UI-thread discipline and accessibility gates remain mandatory.
- keyring — OS vault adapter only; fail-closed source and packaged validation remains mandatory.
- tzdata — Windows IANA timezone direction; packaged zone resolution, supply-chain review and DST tests remain mandatory.
- APScheduler — trigger-only scheduler adapter; it must never become the durable invoice job engine.

## Deferred

- SQLModel — deferred until an approved SQLAlchemy walking skeleton proves a concrete need; it may never become the domain model.

## Spike/test only

- psutil — retained for spike/test measurement and diagnostics only; runtime use requires a future explicit decision.

Detailed license, boundary, evidence, security, packaging, upgrade and replacement information is in the [Dependency Disposition Register](docs/phase-0c/DEPENDENCY_DISPOSITION_REGISTER.md).
34 changes: 27 additions & 7 deletions NEXT_ASSIGNMENT.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,33 @@
# Next Assignment

## Phase 0B.3 remediation continuation - target-Windows execution
## Phase 1 — Repository Governance and CI Foundation

Phase 0C is not authorized.
**Authorization: Approved by the Human Architecture Owner and Final Approver on 2026-07-24.**

Run from the authoritative OpenInvoice repository root:
**Activation status: Pending Phase 0C repository finalization.** Phase 1 begins only after all of these actions complete:

```powershell
powershell -ExecutionPolicy Bypass -File .\spikes\phase_0b1\run_windows_validation.ps1
```
1. Commit and push the Phase 0C Final Approval Patch to `docs/phase-0c-controlled-baseline`.
2. Revalidate Draft PR #3 at the resulting approval-record head.
3. Mark PR #3 ready only after final verification.
4. Merge PR #3 into `main` through the reviewed workflow.
5. Create and verify `baseline-v1.0.0` from the merged `main` commit.

Review the packaging gate evidence and all `WIN-01` through `WIN-07` result files. Phase 0C may be proposed only when every mandatory track is `Completed` or `Completed with warnings`, packaged credential cleanup passes, packaged timezone resolution passes, scheduler restart deduplication passes, and the Human Architecture Owner approves the evidence gate.
## Authorized Phase 1 scope

Phase 1 may establish:

- protected branch and repository rules;
- CODEOWNERS, pull-request and issue templates;
- CI bootstrap and deterministic documentation checks;
- secret scanning, dependency review, license checks and SBOM direction;
- approved Python/build-tool evaluation and proposed lockfile workflow;
- architecture-fitness test scaffolding.

## Restrictions retained

- Production invoice feature code is not authorized.
- A production dependency lockfile is not authorized by Phase 0C.
- Exact dependency versions remain unapproved until the Phase 1 dependency/build gate.
- Dependency installation or import into production code is not implied by a direction approval.
- Database schema, provider integration, execution-engine, scheduler and UI implementation remain outside this assignment.
- Direct push to `main`, force push and destructive Git operations remain prohibited.
55 changes: 35 additions & 20 deletions PROJECT_STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,43 @@
|---|---|
| Project | OpenInvoice |
| Repository | `vibtools/OpenInvoice` |
| Current phase | Phase 0B.3 - Windows Packaging Pipeline Remediation |
| Phase status | Blocked pending target-Windows execution |
| Source commit | `4cfc3cb5de400d4459cc5fd691a208abc185018f` |
| Human-reviewed candidate head | `81d393c494557d7240e43bf17f8ca4ebe8b105c3` |
| Current phase | Phase 0C — Human-approved; repository finalization pending |
| Phase 0A | Approved |
| Phase 0B | Approved with conditions |
| Phase 0B.1 | Remediation required |
| Phase 0B.2 | Not approved; package structure accepted |
| Complete baseline | Draft |
| Architecture change implemented | No |
| Production code | Not started |
| Candidate dependency | `tzdata` proposed; Phase 0C decision required |
| Next gate | Complete packaging gate and seven-track Windows regression |
| Phase 0B.2 | Not approved; remediation continued |
| Phase 0B.3 | Approved by Human Architecture Owner |
| Phase 0C | Approved by Human Architecture Owner and Final Approver |
| Approved baseline | `1.0.0` |
| Baseline tag | `baseline-v1.0.0` authorized; not yet created |
| Phase 1 | Authorized after baseline merge/tag finalization; not started |
| Production code | Not authorized |
| Production lockfile | Not authorized |

## Phase 0B.3 preparation
## Evidence classification

- [x] Canonical GitHub repository verified.
- [x] Merged package baseline reconstructed.
- [x] Unique build-directory and copied-launch strategy implemented.
- [x] Deterministic process lifecycle checks implemented.
- [x] Minimal Tcl/Tk packaging diagnostic implemented.
- [x] Controlled Tcl/Tk fallback sequence implemented.
- [x] Packaged credential/timezone/scheduler probes implemented.
- [x] Static package validation completed.
- [ ] Target-Windows packaging gate executed.
- [ ] Full seven-track Windows regression completed.
- [ ] Human Architecture Owner review.
- Repository integration and PR state: **Repository-verified**.
- Phase 0B.3 final Windows pass: **Human-attested** from a separate validation session.
- Phase 0C local technical validation: **Human-attested** from recorded PowerShell execution against candidate head `81d393c494557d7240e43bf17f8ca4ebe8b105c3`.
- Spike outputs and candidate directions remain classified in EVID-001 through EVID-013.
- Independent rerun of raw Windows evidence during Phase 0C: **Unverified / not claimed**.
- No GitHub Actions workflow or combined status check is represented as green when none ran.

## Phase 0C disposition

- [x] Technical validation completed.
- [x] Six ADRs accepted with conditions by the Human Architecture Owner.
- [x] All 13 dependency directions dispositioned.
- [x] Baseline `1.0.0-candidate.1` approved as baseline `1.0.0`.
- [x] `baseline-v1.0.0` authorized.
- [x] Phase 1 — Repository Governance and CI Foundation authorized.
- [x] Production feature code remains prohibited.
- [x] Production lockfile remains prohibited.
- [x] Architecture change implemented: No.
- [x] ACR required: No.
- [ ] Final Approval Patch committed and pushed.
- [ ] PR #3 final verification completed after the approval commit.
- [ ] PR #3 merged into `main`.
- [ ] Authorized baseline tag created from the verified merged `main` commit.
66 changes: 32 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,48 @@
# OpenInvoice

OpenInvoice is a planned desktop invoice-operations platform for preparing, validating, scheduling, sending, and reviewing invoice workloads across supported invoice services.
OpenInvoice is a planned Windows desktop invoice-operations platform for preparing, validating, scheduling, sending, and reviewing invoice workloads across supported invoice services.

## Current status

OpenInvoice is currently in **Phase 0A: Project Discovery and Governance**.
OpenInvoice has a **human-approved controlled baseline `1.0.0`**. Phase 0C repository finalization is pending the reviewed merge of PR #3 and creation of the authorized baseline tag.

> No production invoice-processing implementation has been released. Production application code has not started.
> No production invoice-processing implementation has started. Phase 1 is limited to repository governance and CI foundation work after baseline finalization.

The current baseline is **Draft 0.1.0** and requires human Architecture Owner approval before it may be treated as approved.
- Approved baseline: `1.0.0`
- Approved from candidate: `1.0.0-candidate.1`
- Human-reviewed candidate head: `81d393c494557d7240e43bf17f8ca4ebe8b105c3`
- Canonical repository: `vibtools/OpenInvoice`
- Authorized tag: `baseline-v1.0.0` — not yet created
- Phase 1: authorized after merge/tag finalization; not started
- Production code: not authorized
- Production lockfile: not authorized

## Product principles
## Approved architecture direction

- Beginner-oriented, workflow-first desktop experience.
- Strong isolation between invoice workspaces.
- Durable execution with explicit recovery and reconciliation.
- Capability-based provider adapters instead of provider-specific core logic.
- Secure operating-system credential storage; no plaintext secrets.
- Human-governed architecture and AI-assisted implementation.
- Isolated Workspaces with separate Run, Job and Attempt lifecycles.
- `control.db` plus one isolated `workspace.db` per workspace.
- Workspace-scoped logical queues served by a global bounded engine.
- Capability-based provider adapters and operation-level retry safety.
- Immutable run snapshots, durable state, `UNKNOWN` outcomes and reconciliation before retry.
- Trigger-only scheduling with durable occurrence identity.
- Workflow-oriented Standard experience with progressive Advanced controls and separate Diagnostics.
- Windows `onedir` packaging direction with packaged credential and timezone validation gates.

## Planned high-level workflow
## Baseline records

1. Choose an invoice service.
2. Connect one or more accounts.
3. Add and validate customers.
4. Prepare invoice details and dynamic data.
5. Review and test.
6. Send immediately or schedule a run.
7. Review results and problems requiring attention.
- [Phase 0C Overview](docs/phase-0c/README.md)
- [Phase 0C Approval Record](docs/reviews/PHASE_0C_APPROVAL_RECORD.md)
- [Baseline Approval Packet](docs/phase-0c/BASELINE_APPROVAL_PACKET.md)
- [Evidence Inventory](docs/phase-0c/EVIDENCE_INVENTORY.md)
- [ADR Disposition Register](docs/phase-0c/ADR_DISPOSITION_REGISTER.md)
- [Dependency Disposition Register](docs/phase-0c/DEPENDENCY_DISPOSITION_REGISTER.md)
- [Traceability Matrix](docs/phase-0c/TRACEABILITY_MATRIX.md)
- [Phase 0C Review Checklist](docs/reviews/PHASE_0C_REVIEW_CHECKLIST.md)

## Documentation
## Governance

- [Project Charter](docs/00-governance/PROJECT_CHARTER.md)
- [Project Constitution](docs/00-governance/PROJECT_CONSTITUTION.md)
- [Baseline Policy](docs/00-governance/BASELINE_POLICY.md)
- [AI Development Policy](docs/00-governance/AI_DEVELOPMENT_POLICY.md)
- [Product Vision](docs/01-product/PRODUCT_VISION.md)
- [Requirements](docs/01-product/REQUIREMENTS.md)
- [Architecture Principles](docs/02-architecture/ARCHITECTURE_PRINCIPLES.md)
- [Architecture Invariants](docs/02-architecture/ARCHITECTURE_INVARIANTS.md)
- [Phase 0A Review Checklist](docs/reviews/PHASE_0A_REVIEW_CHECKLIST.md)

## Contribution status

Implementation contributions are not yet open. Documentation changes must follow the governance baseline, use a reviewed branch, and receive human approval.
The Human Architecture Owner and Final Approver approved the baseline and authorized Phase 1. AI did not approve the baseline, ADRs, tag or implementation. Direct push to `main` remains prohibited.

## License status

A project license has not yet been approved. No licensing claim is made by this Phase 0A baseline.
A project license has not yet been approved. Dependency-license records are review data and do not establish the project license.
Loading