Skip to content

docs(con): reconcile current-main lifecycle plan - #261

Merged
abiorh-claw merged 8 commits into
mainfrom
codex/ws-con-001-plan4-current-main-reconciliation
Aug 4, 2026
Merged

docs(con): reconcile current-main lifecycle plan#261
abiorh-claw merged 8 commits into
mainfrom
codex/ws-con-001-plan4-current-main-reconciliation

Conversation

@Abiorh001

@Abiorh001 Abiorh001 commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Chunk

WS-CON-001-PLAN4 — Current-Main Reconciliation.

Goal

Reconcile the complete contribution/compensation plan with current main without starting runtime implementation.

Human-approved intent

Pull latest main, repair every stale/conflicting plan and document, review ART/AUTH/REV alignment end to end, fix review findings, and publish a PR if needed.

What changed

  • Rebased planning truth to main 1072038, including merged REV PLAN4 PR docs(review): refresh full lifecycle plan #258.
  • Replaced dispatcher-first sequencing with a reviewed partial order.
  • Established CON-03A -> CON-03B as the first runtime path; 03B supplies REV-03A2 policy FK truth.
  • Kept CON-02C independent and before REV-04B.
  • Deferred CON-02B until AUTH delivers complete dispatcher authority.
  • Synchronized the canonical spec, chunk map, executable 03C/04B/08A contracts, handoffs, risks, decisions, source manifest, conformance matrix, and status.
  • Restricted future receipt quantity/unit and digest provenance and forbidden provider data.

Why it changed

Merged AUTH/ART/REV work made the old linear plan stale. It blocked independent persistence on dispatcher authority and omitted cross-chunk gates.

Design chosen

Use a capability-based partial order while preserving custody: AUTH owns authority; ART owns bytes/provider access; REV owns review lifecycle and the decision commit; CON owns policy, contribution, award, and fulfillment facts.

Alternatives rejected

  • Waiting for dispatcher before independent schema work.
  • Letting CON implement REV lease/FinalAcceptance behavior.
  • Letting dispatcher authority authorize feature handlers.
  • Persisting raw or hashed forbidden provider payloads.

Scope control / allowed files

Only WS-CON planning/review artifacts, the PLAN4 merge intent, the PLAN4 review-log entry, and the bounded canonical contribution specification sections. Exact paths are in the PLAN4 contract.

Not allowed: runtime, migrations, routes, activation, workflows, dependencies, CI changes, tests, other initiative edits, roadmaps, exports, or archival reference inputs.

Product behavior

No product behavior changes. Planning/specification only.

Acceptance criteria proof

Tests/checks run

  • git diff --check
  • python3 scripts/check_markdown_links.py
  • python3 scripts/check_stale_workstream_wording.py
  • python3 scripts/check_stale_authorization_docs.py
  • python3 -m unittest -v scripts.test_lightweight_agent_gates

All local checks pass. Hosted Backend and Agent Gates passed on the first PR head; refreshed checks are running for the repair head.

Test delta

No test files changed. No assertions, coverage floors, workflows, or CI controls were weakened.

CI integrity

No workflow, dependency, test-runner, package, or coverage configuration changed. The first hosted Backend run passed every lane and aggregate test.

Reviewer results

  • Architecture: PASS after executable dependency-contract repair.
  • Security/auth: PASS after receipt and AUTH evidence tightening.
  • Product/ops: PASS after canonical digest-provenance repair.
  • QA/test/CI: PASS WITH CONDITIONS; no actionable finding, PDF exclusion and refreshed checks only.
  • Docs: PASS.
  • Senior engineering/reuse: PASS.

External review

CodeRabbit raised four valid findings. All were repaired in commit 94bfb3b and recorded in WS-CON-001-PLAN4-external-review-response.md. Refreshed CodeRabbit review is pending.

Remaining risks

ART #249 remains open, so migration allocation must be refreshed. AUTH registrations, legacy-row classification, REV runtime targets, and callback/provider contracts remain future gates.

Follow-up work

After PLAN4 merges and human approval, refresh main and implement only CON-03A. Do not start later chunks automatically.

Human review focus

Review the partial order, dispatcher deferral, REV lease/FinalAcceptance dependencies, receipt minimization/digest provenance, and excluded PDF.

Human merge ownership

Only the human may approve and merge this PR.

Summary by CodeRabbit

  • Documentation
    • Updated contribution and compensation planning documents with current ownership, dependencies, implementation sequencing, release gates, and reconciliation status.
    • Clarified receipt-data restrictions, including prohibited provider-derived data and digest handling.
    • Added review evidence, validation results, risk tracking, and a formal planning-only stop condition.
    • Refined dependency gates for persistence, authorization, auditing, and delivery work.

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Abiorh001, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 53 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3197c7d1-484e-472b-9e2d-e06ea55a9fe5

📥 Commits

Reviewing files that changed from the base of the PR and between 420b976 and efd5a69.

📒 Files selected for processing (6)
  • .agent-loop/REVIEW_LOG.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CHUNK_MAP.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-08A-outbound-compensation-delivery.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/reviews/WS-CON-001-PLAN4-external-review-response.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/reviews/WS-CON-001-PLAN4-pr-trust-bundle.md
  • docs/spec_contribution_compensation.md
📝 Walkthrough

Walkthrough

WS-CON-001 is reconciled with the current repository state. The planning documents now define subsystem ownership, partial-order dependencies, authorization boundaries, receipt restrictions, verification requirements, and a planning-only stop before runtime implementation.

Changes

Contribution-compensation planning

Layer / File(s) Summary
Current-main baseline and evidence
.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/*, .agent-loop/merge-intents/WS-CON-001-PLAN4.json, .agent-loop/REVIEW_LOG.md
Planning records now describe current repository state, migration status, subsystem capabilities, blockers, review results, and PLAN4 metadata.
Ownership and decision contracts
.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/AUTHORIZATION_HANDOFF.md, DECISIONS.md, INTENT.md, JOINT_RELEASE_HANDOFF.md, PLAN.md, CONFORMANCE_MATRIX.md
The documents define AUTH, ART, REV, and CON ownership, authorization custody, immutable contribution facts, and the single-session review decision transaction.
Dependency graph and runtime chunk order
.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CHUNK_MAP.md, chunks/*, docs/spec_contribution_compensation.md
The execution order now permits independent scheduling, delays CON-02B until the AUTH dispatcher contract exists, and identifies 03A as the next bounded runtime change after approval.
Receipt, migration, and release controls
.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/RISKS.md, chunks/WS-CON-001-03D-delivery-receipt-status-persistence.md, reviews/*, docs/spec_contribution_compensation.md
Receipt fields and digests are restricted, migration and verification requirements are defined, and review evidence records the planning-only scope and remaining gates.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested reviewers: abiorh-claw

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: reconciling the contribution lifecycle plan with current main.
Description check ✅ Passed The description covers the goal, scope, design, evidence, risks, follow-up work, reviewers, and human ownership, with minor template-format omissions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/ws-con-001-plan4-current-main-reconciliation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
@.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03D-delivery-receipt-status-persistence.md:
- Around line 50-55: Clarify the receipt-storage allowlist in the relevant
persistence criteria to restrict exact quantities to the canonical award
quantity and binding unit, and canonical digests to platform-generated digests
derived exclusively from approved receipt fields. Explicitly reject digests
computed from provider bodies, tokens, signatures, URLs, PII, balances, ledgers,
settlement data, or other forbidden inputs, and add rejection tests covering
those digest inputs.

In
@.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CONFORMANCE_MATRIX.md:
- Line 8: Update the Authorization row in CONFORMANCE_MATRIX.md to state that
CON mappings, identities, and static rows are currently absent on main, and
require exact AUTH-owned registration and activation evidence for every future
artifact. Remove the runtime-inspection exception so inspection alone cannot
satisfy or waive the AUTH gate, while preserving the existing AUTH activation
and CON-11 references.

In
@.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/RISKS.md:
- Line 15: Update the provider receipt mitigation to explicitly deny sensitive
provider, secret, token, signature, URL, PII, balance, ledger, and settlement
data instead of referring only to bounded non-secret facts. Repeat the same
complete exclusion list in the future receipt contract, keeping receipt
persistence limited to bounded non-sensitive facts.

In `@docs/spec_contribution_compensation.md`:
- Around line 894-895: Synchronize the dependency graphs with the child chunk
contracts: in docs/spec_contribution_compensation.md lines 894-895, add CON-04A
as a predecessor of CON-04B; in lines 918-920, add CON-03B as a predecessor of
CON-03C; in
.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CHUNK_MAP.md
lines 36-39 and 64-65, add CON-04A and CON-04B to the CON-08A entry gate and
dependency view.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 82523071-8712-467f-bf91-683752794ef0

📥 Commits

Reviewing files that changed from the base of the PR and between 1072038 and a55b500.

📒 Files selected for processing (22)
  • .agent-loop/REVIEW_LOG.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/ACTIVE_DOC_INVENTORY.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/AUTHORIZATION_HANDOFF.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CHUNK_MAP.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CONFORMANCE_MATRIX.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/DECISIONS.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/DISCOVERY.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/INTENT.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/JOINT_RELEASE_HANDOFF.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/PLAN.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/RISKS.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/SOURCE_MANIFEST.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/STATUS.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-02B-shared-outbox-dispatcher.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-02C-shared-lifecycle-audit-participant.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03A-adapter-binding-persistence.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03B-contribution-policy-persistence.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03D-delivery-receipt-status-persistence.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-PLAN4-current-main-reconciliation.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/reviews/WS-CON-001-PLAN4-pr-trust-bundle.md
  • .agent-loop/merge-intents/WS-CON-001-PLAN4.json
  • docs/spec_contribution_compensation.md

Comment thread .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/RISKS.md Outdated
Comment thread docs/spec_contribution_compensation.md Outdated
@abiorh-claw
abiorh-claw self-requested a review August 4, 2026 05:55
abiorh-claw
abiorh-claw previously approved these changes Aug 4, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-08A-outbound-compensation-delivery.md (1)

9-19: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Add CON-03D to the explicit CON-08A prerequisite gate.

Line 11 lists CON-04A, CON-04B, CON-07, and the shared dispatcher. docs/spec_contribution_compensation.md Line 903 also requires CON-03D before CON-08A. The CON-03D chunk owns delivery-receipt status persistence. Without this child-contract gate, CON-08A can start against an incomplete receipt contract.

Add CON-03D to the prerequisite list, or state that CON-08A intentionally implements and supersedes the CON-03D contract.

Proposed prerequisite update
- - CON-04A binding behavior, CON-04B policy behavior, CON-07, and shared outbox
-   dispatcher are merged;
+ - CON-03D delivery-receipt status persistence, CON-04A binding behavior,
+   CON-04B policy behavior, CON-07, and shared outbox dispatcher are merged;
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
@.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-08A-outbound-compensation-delivery.md
around lines 9 - 19, Update the CON-08A “Prerequisites” section to explicitly
include CON-03D alongside CON-04A, CON-04B, CON-07, and the shared outbox
dispatcher. Preserve the existing prerequisite wording, unless the
implementation intentionally owns and supersedes the CON-03D delivery-receipt
status persistence contract; in that case, state that explicitly.
docs/spec_contribution_compensation.md (1)

891-913: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Use the exact REV-04B runtime gate in the canonical dependency views.

Line 898 uses REV FinalAcceptance foundation. Lines 923-926 use REV-04 Review/FinalAcceptance persistence. The CON-03C contract requires merged runtime FinalAcceptance, Review, and ReviewLease targets and rejects planning records as gate evidence. Replace the broad labels with REV-04B runtime Review/ReviewLease/FinalAcceptance in both locations.

This keeps the canonical order identical to the child contract and prevents partial or planning-only REV persistence from satisfying the predecessor.

Proposed dependency wording
- REV FinalAcceptance foundation -> CON-03C -> CON-03D
+ REV-04B runtime Review/ReviewLease/FinalAcceptance
+   -> CON-03C -> CON-03D
...
- REV-04 Review/FinalAcceptance persistence + CON-03B
+ REV-04B runtime Review/ReviewLease/FinalAcceptance + CON-03B
    -> CON-03C exact contribution source schema

Also applies to: 923-926

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/spec_contribution_compensation.md` around lines 891 - 913, Replace the
broad REV predecessor labels in both canonical dependency views—including the
dependency entry currently using “REV FinalAcceptance foundation” and the later
REV-04 persistence references—with the exact gate label “REV-04B runtime
Review/ReviewLease/FinalAcceptance.” Ensure both views require merged runtime
Review, ReviewLease, and FinalAcceptance targets, not planning records or
partial persistence, matching the CON-03C contract.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In
@.agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-08A-outbound-compensation-delivery.md:
- Around line 9-19: Update the CON-08A “Prerequisites” section to explicitly
include CON-03D alongside CON-04A, CON-04B, CON-07, and the shared outbox
dispatcher. Preserve the existing prerequisite wording, unless the
implementation intentionally owns and supersedes the CON-03D delivery-receipt
status persistence contract; in that case, state that explicitly.

In `@docs/spec_contribution_compensation.md`:
- Around line 891-913: Replace the broad REV predecessor labels in both
canonical dependency views—including the dependency entry currently using “REV
FinalAcceptance foundation” and the later REV-04 persistence references—with the
exact gate label “REV-04B runtime Review/ReviewLease/FinalAcceptance.” Ensure
both views require merged runtime Review, ReviewLease, and FinalAcceptance
targets, not planning records or partial persistence, matching the CON-03C
contract.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4c2f80f0-1098-44b3-a13e-6707b7523df3

📥 Commits

Reviewing files that changed from the base of the PR and between a55b500 and 420b976.

📒 Files selected for processing (20)
  • .agent-loop/REVIEW_LOG.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/ACTIVE_DOC_INVENTORY.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/AUTHORIZATION_HANDOFF.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CHUNK_MAP.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CONFORMANCE_MATRIX.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/DISCOVERY.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/INTENT.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/JOINT_RELEASE_HANDOFF.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/PLAN.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/RISKS.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/SOURCE_MANIFEST.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/STATUS.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03A-adapter-binding-persistence.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03C-contribution-award-persistence.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03D-delivery-receipt-status-persistence.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-04B-hidden-contribution-policy-service.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-08A-outbound-compensation-delivery.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/reviews/WS-CON-001-PLAN4-external-review-response.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/reviews/WS-CON-001-PLAN4-pr-trust-bundle.md
  • docs/spec_contribution_compensation.md
🚧 Files skipped from review as they are similar to previous changes (12)
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/RISKS.md
  • .agent-loop/REVIEW_LOG.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03A-adapter-binding-persistence.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/ACTIVE_DOC_INVENTORY.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/reviews/WS-CON-001-PLAN4-pr-trust-bundle.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/SOURCE_MANIFEST.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/chunks/WS-CON-001-03D-delivery-receipt-status-persistence.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/AUTHORIZATION_HANDOFF.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CONFORMANCE_MATRIX.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/CHUNK_MAP.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/JOINT_RELEASE_HANDOFF.md
  • .agent-loop/initiatives/WS-CON-001-contribution-compensation-boundary/PLAN.md

@abiorh-claw
abiorh-claw merged commit 1cd9c51 into main Aug 4, 2026
10 checks passed
@abiorh-claw
abiorh-claw deleted the codex/ws-con-001-plan4-current-main-reconciliation branch August 4, 2026 06:50
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