Skip to content

✨🧑‍💻 - Complete the household administration workspace after the verified API and controller checkpoint #27

Description

@efraespada

Is there an existing issue or feature request for this?

What area does this improvement affect?

User Interface

What actions does this improvement affect?

Issue, Pull Request, Commit

Description of the idea or improvement

Complete the accessible household administration workspace on top of the actual schema9 and API/controller foundations merged in PR #26 at 8b1cbc110c389b9cdb6ecd11317c95abf2c4b0a9. The reviewed head is b60b7677c07faf62c534943c09748b70ad4a6408; their trees are identical (9386f2ea5249b5ea0c0bb4e83f814f503012be47).

Preserve the owning contracts in specs/household-administration.md, specs/household-administration-integration.md and specs/household-administration-workspace.md. All 72 HADM owner cases, eight HADI refinements and 82 HADW workspace cases remain required. The original 80 workspace rows and two subsequent independent household-scope/lookup cases must remain distinct. Passing foundations do not establish full feature acceptance.

Implement the remaining work:

  1. Compose the actual entry and administration controllers into one browser lifetime. Fence logout, expiry, context/authority changes, refresh, cancellation, BFcache and late responses across both controllers. Preserve existing entry intents and its separate journal. Reconcile verified installation/channel/subject and access before exposing private administration views; do not combine old and new contexts.
  2. Deliver responsive, accessible English/Spanish roster, identity/provenance, own alias/private preferences, household settings, member access/overrides and HA-role mapping forms. Use actual current permissions, independent exact revisions, explicit confirmation and actionable denied/unavailable/stale/uncertain states. Preserve original commands and same-context drafts; no automatic replay, rebase or replacement.
  3. Integrate the existing capability-v2 household binding and separate bounded journal. Explicit recovery uses protected original-action key/ID GET, including valid read-only outage leases and callers without aggregate-read permission. Never require new mutation CSRF/revision preconditions merely to query an original result.
  4. Add complete Storybook states and real compiled-browser/Python/SQLite administration journeys in native Ingress and standalone deployments. Cover keyboard/focus/live announcements, narrow layouts, localization, privacy, concurrent writers, storage failure and lost-response/reload recovery.
  5. Resolve safe HA avatar-source feasibility and show honest unavailable states when no supported source exists. HA source metadata remains bounded, distinct from authorization and outside SQLite write locks.
  6. Audit every retained acceptance row against actual evidence, retain human UX review where required, and complete the supported owner-HA validation and packaging work without conflating historical Edge.5 entry evidence with current administration acceptance.

Current limitations or challenges

PR #26 implements protected profile APIs, bounded HA metadata/directory, exact int64 codecs, shared HTTP transport, separate immutable administration journal, pure authorization and an application AdministrationController. That controller is not yet imported into the browser entry composition; the compiled entry UI remains unchanged. Complete administration forms and actual administration browser journeys are absent.

At the checkpoint, CI Check passes the full 4,364-test backend campaign (151 modules, 100% supported statements/branches globally and per module), 1,020 Chromium unit executions (28 authored runtime files, all four metrics 100%), actual entry/Python/SQLite and Storybook suites, wheel acceptance, types and architecture. Both actual CPU images pass 32 checks each. Native review completes all 13/13 partitions with complete context and zero open/reopened/verification-required findings; three historical valid findings are fixed and one reproduced false positive is dismissed. These counts accept the checkpoint only.

The independent progress-publication failure is reported in vypdev/copilot#828, with exact current evidence at vypdev/copilot#828 (comment). The owner explicitly authorized merge despite reported Copilot-only failures once product CI, coverage and Bugbot findings were clear. Do not change Copilot or weaken checks.

Expected impact

Household members can safely manage their own presentation/preferences and authorized household administration through the actual Domus interface. Lost responses, reloads, current permission changes and HA outages retain truthful recovery without exposing another member's private facts or duplicating commands.

Additional context or comments

Use Clean Architecture, tests first, complete supported coverage globally/per authored module, independent inventories, every-PR CI Check and actual amd64/aarch64 package checks. Keep code, documentation and issues in English; UI in English and Spanish with English fallback.

No new owner product decision is needed for the retained scope. Keep every prior confirmation: HA names by default and optional alias editable by self/administrators; owner-private preferences; configurable household profiles/member exceptions; HA account per participant; local read-only outage lease until original expiry; no caller-selected identity/installation/channel; original-action authorization before receipt disclosure.

The Action owns admission, SDD publication, exact base selection and remote branches. Start from the actual merged develop baseline above, not bootstrap master. Reuse the existing three owning SDDs; declare any new implementation/test paths and validate the unchanged original Copilot SDK before implementation on the exact admitted branch. Do not create a replacement ref, change Copilot code/resources/configuration/workflows/credentials/bounds or touch the integrated gateway.

The complete all-domain product goal remains active. Recurrence/calendar continuation #23 remains required after actual schema9. Do not mark the whole administration workspace, owner adoption, Stable/Edge release or full product complete from this checkpoint or from lifecycle labels.

Maintainer-approved companion recovery (supersedes the failed update route)

The original update attempts failed response-size validation after their one bounded repair: run41521889438/ref7277b01c-193d-426b-a510-9429e3e10aac and the already queued start event41522456887/ref286bf5be-ed46-422f-822b-094d413bf65f. A substantive proportional integration-owner appendix was then supplied, independently passing original SDK checks at17,504 rendered/58,906 composed characters. Nevertheless native run41524885407/job125550058643 also failed response-size validation, expected18,000, ref48c140e4-f41b-4249-83ab-c29ada8d3726. This does not establish the rejected candidate's content/length or root cause. All observations are reported in vypdev/copilot#763 (comment).

Use the supported explicit COMPANION recovery: action companion, capabilityId household-identity, NEW unregistered path specs/household-administration-browser.md. This is the maintainer's approved ownership decision for this same issue, not a new capability or product-scope reduction. Do not reuse the failed update plan, append to an existing owner or regenerate/copy the large owner documents. Preserve all existing HADM/HADI/HADW specifications verbatim; reference their complete contracts and cases. No linked issue27 branch has been published, so no established branch owner is being silently changed.

The exact bounded proposal below passes ownership/format/consistency/case-budget/traceability/path validation using all seven byte-verified original policy modules at3e7ceea08e6131360e026937d1c0cc1b120472e0: raw16,515 characters, rendered17,598, well within the unchanged70,000 companion bound. Rendered SHA25667be304207a22c695c8d055d179db0ce96d4091e1d0760cc94ec2cf37809a3c8. This local proof does not establish native publication/readiness or implementation. Keep the two raw derived-table slots and use the existing trusted renderer; no validator, model, bound or Copilot resource is changed.

All72 HADM owner cases/eight HADI refinements/82 HADW workspace rows remain required, including the original80 plus two independent scope/lookup controls. Keep all24 additional browser refinements below without counting retained rows as newly completed journeys. The full pending interface, actual runtime/browser/SQLite, human UX and package acceptance remains required. No new product choice is needed. Start from actual PR26 merge8b1cbc110c389b9cdb6ecd11317c95abf2c4b0a9 on develop. The exact future managed branch and verified native SDD are publication outputs; do not require them as prior product answers or create a contributor replacement ref.

Proposed bounded companion (raw; derive the two tables normally)

Household administration browser completion

Preserve specs/household-administration-integration.md verbatim and all contracts in specs/household-administration.md and specs/household-administration-workspace.md: 72 HADM cases, eight HADI refinements and 82 HADW rows (original80 plus two independent scope/lookup cases). This companion adds24 browser refinements; it replaces none and claims no newly completed journeys. Full administration and all-domain scope remains required.

1. Executive summary

Complete the retained EN/ES administration workspace in both deployments over the actual merged schema9/API/controller foundations. Integrate entry/admin lifetimes, complete authorized forms and truthful original recovery. No new product setting, schema or public action is introduced.

2. Problem and evidence

Reviewed b60b767 and PR26 merge8b1cbc110c389b9cdb6ecd11317c95abf2c4b0a9 have identical trees. APIs/controller/journal exist; the browser remains entry-only. Passing checkpoint CI/coverage/review does not accept the UI. Unmodified-source controls reproduce lost active proof on optional household-read failure in both modes; healthy controls pass. Correction and full runtime acceptance remain pending.

3. Actors, surfaces and terminology

Participants, current administrators and operators retain their existing distinct authority. Labels, aliases, provider facts and journals never authorize; receipts describe original processing only.

4. Goals

Requirement Behavior
HADB-01 Coordinate entry and administration proof, current access and resource lifetimes without combining contexts or exposing retired private views.
HADB-02 Preserve explicit immutable commands, exact revisions, drafts and protected original GET recovery independently of optional aggregate availability.
HADB-03 Deliver all retained accessible EN/ES roster, own presentation/preferences, household/member and policy forms with truthful provider and permission provenance.
HADB-04 Verify real compiled-UI/Python/SQLite journeys, supported package compatibility and every retained acceptance obligation with truthful evidence and documentation.

Non-goals: Copilot/gateway changes, new DDL, arbitrary external images, person-based authentication, notification delivery, automatic mutation retries, key replacement/rebase, automatic promotion or acceptance of recurrence continuation #23. Publication alone authorizes no release/tag or owner HA rollout.

5. Current versus proposed journey

Verified entry -> matched current admin context -> permitted facts/draft -> one original command -> receipt/current state -> deliberate original GET if uncertain

The current entry-only shell becomes the complete retained administration journey. Unknown facts remain unknown; independently permitted work stays usable. Logout, expiry and context replacement hide private presentation.

6. Behavior and state model

An application coordinator publishes private administration only for matched verified installation/channel/subject, access mode/grants and consistent available household scope. Hide private facts while revalidating; reuse safe same-context evidence and fence replaced controllers. One bounded entry reconciliation may align drift; persistent mismatch stays hidden with refresh action, never loops/writes. Optional aggregate failure retains independently verified authority after a current-grant recheck; authentication failure still retires access. Every command/original result retains its own operation-time authorization.

Serialize explicit commands; stale logout during either command cannot cancel runtime/timers. Teardown fences both controllers without claiming to undo server effects. Ticks never renew leases or send/lookup automatically; BFcache restoration requires fresh proof. Preserve same-context drafts and original revisions on language change/failed preflight; reset explicitly to adopt a revision. Retired authority/context clears private presentation; unresolved same-aggregate originals cannot be replaced.

7. Configuration

Retain all owner bounds/defaults: null alias, browser locale/English fallback unless an owner locale is saved, enabled stored routine-summary preference, existing configurable profiles/exceptions/mapping. Language switching is temporary until explicitly saved. Alias is public and editable by self/current administrators; preferences are owner-only. Journal v1 remains eight records/65536 UTF-8 bytes/one hour, separate from entry. Exact positive int64 revisions and closed formats remain unchanged; no credentials, CSRF, raw HA responses, arbitrary URLs or caller-selected identity are configurable.

8. Clean Architecture

Document composition -> application coordinator -> existing entry/admin use cases -> pure domain/semantic ports
Concrete HTTP/journal/clock adapters -> ports; immutable views -> localized Lit components -> closed intents

Coordinator has no DOM/Lit/fetch/storage/HA DTO/SQLite dependency. Composition owns resources, presentation inert rendering, existing application/domain owners mutations and authorization. Enforce inward imports, cycles, DTO contracts and independent authored-source inventories.

9. UI/UX and content

Show identity/access, permitted facts, action/impact, then technical details. Pending: “Checking access. No changes sent.” Action: “Review this pending member; confirm a restricted profile.” Blocked: “Access changed. Changes not saved; refresh.” Partial: “Household details unavailable; other permitted facts remain available.” Uncertain: “Check the original request; do not replace it.” Complete: “Preferences saved. Notification delivery is unavailable.” Historical receipts distinguish absent current effects.

Complete every retained roster/source/provenance, own alias/preferences, household/member/policy form. Preserve untouched policy values, restricted activation/confirmation, protected-grant restrictions and stored/effective-role distinction. Provider failure is not empty success; unsupported avatars remain unavailable. Retain hidden same-context drafts through revalidation. Complete EN/ES labels/help/errors, saved-locale precedence, keyboard/focus/live status,360px,both themes/reduced motion; language switching sends no mutation.

10. Failure and recovery

Use impact -> cause -> action -> retained-state content. Preserve distinctions among denial, unavailability, invalid facts, conflicts/exhaustion, uncertain and historical results. Cancellation cannot undo an atomic effect. Only explicit protected original key/ID GET recovers administration results, under current original-action/operations and owner-private guards; never add aggregate-read, mutation-CSRF or expected-revision preconditions. Read-only outage leases allow these local reads until unchanged expiry and block mutations. Independent capability-v2 household scope binds facts/receipts. Original intent remains immutable; no automatic lookup/resend/rebase/replacement.

11. Security and privacy

Retain all owner privacy/authorization boundaries: matched current proof before private publication, operation-time reauthorization, no actor/context/URL/method injection, inert text, no cross-owner preferences through any view/receipt/audit/event/log, and no revival by retired responses.

12. Observability

Keep bounded authorized status/IDs and exact source/package/check evidence. Separate original failures, corrected results and owner-runtime proof; never log private data or infer user delivery.

13. Compatibility and rollout

Preserve schema9, genuine schema1..8/history, journal/intent compatibility and historical Edge.5 evidence. Verify current wheel/both CPU UI bytes and compatible rollback; no automatic owner rollout/release.

14. Testing strategy

24 additional browser integration refinements; every original owning case remains mandatory and is not recounted as newly completed work.

{{SDD_CASE_BUDGET}}

Case ID Area Requirements Scenario
household-browser-C01 State HADB-01 Matching active entry/admin proof publishes a joint view without writes.
household-browser-C02 State HADB-01 Different verified contexts never expose combined private facts; reconcile once at most.
household-browser-C03 State HADB-01 Grant removal during collection retires earlier private facts before publication.
household-browser-C04 State HADB-01 Expiry during collection hides both views; timers/later replies cannot revive access.
household-browser-C05 State HADB-01 Stale logout during either command preserves timers/original record; later logout closes.
household-browser-C06 State HADB-01 BFcache during send fences late reply; restored fresh proof keeps recovery without resend.
household-browser-C07 State HADB-01 Dispose/scheduler failure cancels both owned reads; late publication remains fenced.
household-browser-C08 State HADB-01 Persistent drift after one reconciliation stays hidden without loops or writes.
household-browser-C09 Application HADB-02 Unavailable optional household facts retain verified authority for permitted original GET.
household-browser-C10 Application HADB-02 Original-action/operations grants without aggregate-read still permit original GET.
household-browser-C11 Application HADB-02 Lost reply then reload/recovery retains exact original intent and sends no second mutation.
household-browser-C12 Application HADB-02 Stale revision/storage failure preserves safe draft; explicit reset replaces no unresolved work.
household-browser-C13 Security HADB-01, HADB-02 Same HA subject relinked to a new member never sees the previous member private result.
household-browser-C14 Security HADB-02 Valid read-only lease permits original GET, blocks writes and expires both views unchanged.
household-browser-C15 Security HADB-03 Hostile names render as text; forged principal/extra-field intents send no command.
household-browser-C16 Security HADB-03 Administrator sees only permitted public member facts, never private/protected editors.
household-browser-C17 UX HADB-03 EN/ES switch preserves original draft/revision, translates errors and sends nothing.
household-browser-C18 UX HADB-03 Saved locale beats a different browser locale after reload; unsupported choice falls back.
household-browser-C19 UX HADB-03 Keyboard-only activation/errors/recovery retain labels/focus/live status at360px/both themes.
household-browser-C20 UX HADB-03 Denied/unavailable directory/avatar stays honest; other edits preserve untouched policy.
household-browser-C21 Integration HADB-04 Actual compiled UI exercises permitted actions/recovery in both Python/SQLite compositions.
household-browser-C22 Integration HADB-04 Independent-writer race/lost reply yields one original effect and truthful reload recovery.
household-browser-C23 Integration HADB-04 Actual wheel/CPU images contain current UI bytes; schema9/historical evidence stay compatible.
household-browser-C24 Integration HADB-04 Audit all retained cases/human UX against actual evidence; unit counts cannot close gaps.

Tests first; full supported global/per-authored-module coverage, all four frontend metrics/backend statements-branches, independent inventories, deterministic clocks/fakes, actual browser/SQLite, types/architecture/style/docs and every-PR CI Check. Human UX review records actual reviewer/artifact and covers identity/provenance, activation and historical/uncertain recovery; never simulate approval.

15. Documentation and affected paths

Path Change
specs/household-administration-browser.md create
specs/household-administration-integration.md reference
specs/household-administration.md reference
specs/household-administration-workspace.md reference
specs/household-identity.md reference
specs/delivery-quality.md reference
specs/catalog.json update
specs/CATALOG.md update
frontend/src/application/household-controller.ts create
frontend/src/application/entry-controller.ts update
frontend/src/application/administration-controller.ts update
frontend/src/composition/entry-runtime.ts update
frontend/src/composition/entry-page.ts update
frontend/src/presentation/domus-app.ts update
frontend/src/presentation/domus-administration.ts create
frontend/src/presentation/administration-messages.ts create
frontend/src/presentation/messages.ts update
frontend/src/presentation/styles.ts update
frontend/tests/household-controller.test.ts create
frontend/tests/controller.test.ts update
frontend/tests/runtime.test.ts update
frontend/tests/page.test.ts update
frontend/tests/component.test.ts update
frontend/tests/administration-component.test.ts create
frontend/tests/fixtures/entry-wire.json update
frontend/tests/e2e/administration.spec.ts create
frontend/stories/administration.stories.ts create
frontend/stories/entry.stories.ts update
tests/browser/entry_server.py update
tests/packaging/test_ui_wheel.py update
tests/containers/test_administration_image.py update
docs/household-administration.md update
docs/household-administration-operations.md create
docs/evidence/household-administration.json update

Document the normal user journey, configuration precedence, current permission/provenance, provider availability, explicit original recovery, operator setup/rollback and architecture/lifecycle constraints. Update navigation, catalog and actual artifact evidence together. Declare any further new path before implementation; preserve historical evidence identities rather than rebinding them to new UI bytes.

16. Acceptance

Every new refinement and retained case needs evidence at its actual scope. Complete forms, EN/ES/a11y, original GET, real browser/SQLite/package journeys and required human UX review precede full administration acceptance. Neither unit counts, native publication nor a checkpoint proves the whole workspace, owner adoption, recurrence/calendar or all-domain release.

17. Traceability

{{SDD_REQUIREMENT_CASES}}

HADB-01: coordinator/lifetime tests. HADB-02: partial-read/original/draft contracts. HADB-03: localized form and privacy/a11y tests. HADB-04: actual browser/SQLite/package and human acceptance evidence plus user/operator/catalog docs. All original mappings remain unchanged.

18. Implementation sequence

  1. Native validate/publish the bounded companion and exact managed branch; verify merged base.
  2. Tests first for partial reads and joint lifecycle, then coordinator and both runtime lifetimes.
  3. Complete closed intents/localized forms with tests; actual browser/SQLite/Storybook and CPU packages.
  4. Audit all retained cases and human UX evidence; current-head no-open-finding review/full coverage, truthful docs and compatible rollback/cleanup.

19. Definition of Done

  • All retained/new obligations have actual scoped evidence; complete supported global/per-module coverage.
  • Inward architecture, current authority, private results, exact revisions/original intent and lifecycle fences remain enforced.
  • Every current-head product/package/browser check passes; no unresolved Bugbot finding.
  • User/operator/catalog docs, exact artifacts and human UX review complete; historical evidence preserved.
  • No Copilot/gateway change, invented remote ref, automatic promotion or fabricated product completion.

20. Risks and unresolved work

Proof reads can observe transitions: bounded reconciliation must fail safely without loops. Partial sources, revoked grants and storage faults retain truthful states. Native readiness and implementation remain outstanding. All original administration and other domain requirements, including recurrence #23, remain required.

Activity

  1. added
    enhancementNew feature or request
    featureLabel to manage feature branches
    priority: lowLabel to indicate a priority low
    on Nov 2, 2026
  2. added
    state:ai-processingA Copilot agent is analyzing or working on the issue or change.
    on Nov 2, 2026
  3. moved this to Todo in vypdevon Nov 2, 2026
  4. changed the title [-]Complete the household administration workspace after the verified API and controller checkpoint[/-] [+]✨ - Complete the household administration workspace after the verified API and controller checkpoint[/+] on Nov 2, 2026
  5. removed
    state:ai-processingA Copilot agent is analyzing or working on the issue or change.
    on Nov 2, 2026
  6. vypbot commented on Nov 2, 2026

    @vypbot

    Hi! I’m @vypbot, the Copilot assistant for this repository.

    I can answer questions, explain the codebase, propose implementation and test plans, review issues and pull requests for potential bugs or security problems, and help authorized maintainers apply changes.

    Try /copilot help to see the available commands, or mention @vypbot with your question.

  7. added
    SDDAn SDD update is required before branch work.
    on Nov 2, 2026
  8. vypbot commented on Nov 2, 2026

    @vypbot

    SDD preparation status

    The specification publication was verified on the linked branch. Branch readiness remains subject to its separate checks.

  9. added
    state:blockedThe workflow is blocked and needs human input.
    on Nov 2, 2026
  10. 11 remaining items

  11. removed
    state:ai-processingA Copilot agent is analyzing or working on the issue or change.
    on Nov 2, 2026
  12. vypbot commented on Nov 2, 2026

    @vypbot

    Implementation plan

    Current status: Ready to start. No action is required from maintainers before implementation.

    1. Preserve and publish the browser contract
      • Create the approved companion at specs/household-administration-browser.md, preserving the existing HADM, HADI, and HADW contracts and all 24 additional browser refinements.
      • Start from the merged schema9 baseline and use the Action-admitted branch and verified native SDD before implementation.
    2. Coordinate entry and administration lifetimes
      • Compose both controllers for one browser lifetime and fence logout, expiry, authority or context changes, refresh, cancellation, BFcache, and late responses.
      • Reconcile verified installation, channel, subject, access, and original-action recovery before exposing private administration views.
    3. Build accessible administration forms
      • Implement responsive English and Spanish roster, identity and provenance, personal preferences, household settings, member access, overrides, and HA-role mapping using current permissions and exact revisions.
      • Preserve same-context drafts and original commands; provide explicit confirmation and actionable denied, unavailable, stale, and uncertain states without automatic replay or rebase.
    4. Complete recovery and avatar handling
      • Integrate the capability-v2 household binding and separate bounded journal; allow protected original-action GET recovery during valid read-only outage leases and without aggregate-read permission.
      • Assess supported HA avatar sources and show an honest unavailable state when none exists; keep source metadata bounded and outside SQLite write locks.
    5. Verify journeys and document evidence
      • Add Storybook states and compiled-browser, Python, and SQLite journeys for native Ingress and standalone deployments, including accessibility, localization, privacy, concurrency, storage failure, and lost-response recovery.
      • Audit every retained acceptance row against evidence, retain required human UX review, and complete supported owner-HA validation and packaging without conflating historical entry evidence with current acceptance.

    Acceptance: All 72 HADM cases, eight HADI refinements, 82 HADW rows, and 24 browser refinements have traceable passing evidence across supported deployments and packages, with required UX review complete and no retained obligation accepted solely from checkpoint or historical entry results.

    Need something else? Mention the bot with a question or use /copilot help.

  13. added
    state:ai-processingA Copilot agent is analyzing or working on the issue or change.
    size: XXLLabel to indicate a task of size XXL
    state:blockedThe workflow is blocked and needs human input.
    state:awaiting-maintainerThe next action requires a maintainer response or approval.
    and removed
    state:workingWork can proceed on the verified branch or without a branch.
    state:ai-processingA Copilot agent is analyzing or working on the issue or change.
    on Nov 2, 2026
  14. added
    state:ai-processingA Copilot agent is analyzing or working on the issue or change.
    and removed
    state:ai-processingA Copilot agent is analyzing or working on the issue or change.
    on Nov 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

SDDAn SDD update is required before branch work.branchedThe linked branch and required SDD commit are verified.enhancementNew feature or requestfeatureLabel to manage feature branchesin-progressStart work on an admitted issue.priority: lowLabel to indicate a priority lowsize: XXLLabel to indicate a task of size XXLstate:awaiting-maintainerThe next action requires a maintainer response or approval.state:blockedThe workflow is blocked and needs human input.

Projects

  • Status
    In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions