← The board

G9 Mobile client handoff

Area
G — Cross-cutting UX
Audience
both
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.17.0
Labels
household, ux, verification
Relates to
G6D6I1

The feature in the specification · Read at

Requirements

  1. G9-R1acceptedMUST

    A household member's account MUST be provisioned through the media server as one household identity (D6) before a device is handed over.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    cited by
    lemonfiber@9829145fea
  2. G9-R2acceptedMUST

    The tool MUST issue a per-person scannable code encoding the server address, and a deep link where the client supports one.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/sdk/src/Api/Connectors.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@9829145fealemonfiber-web@495d5f5cab
  3. G9-R3acceptedMUST

    Where the media server offers a code-authorisation sign-in, the tool MUST guide it and MUST NOT auto-approve on the person's behalf.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/sdk/src/Api/Connectors.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@9829145fealemonfiber-web@495d5f5cab
  4. G9-R4acceptedMUST

    Recommended clients MUST be open-source; a proprietary client MAY be named but MUST be flagged as not open-source and MUST NOT be the default.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/AClientToHandOver.phpapp-modules/kernel/src/Api/ADeviceToWatchOn.phpapp-modules/kernel/tests/Api/AHandoffTest.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@9829145fealemonfiber-web@495d5f5cab
  5. G9-R5acceptedMUST

    After hand-off the tool MUST query the media server and assert the new device or session registered, rather than assuming it.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/sdk/src/Api/Connectors.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@3c0f78582dlemonfiber@9829145fea
  6. G9-R6acceptedMUST

    An incomplete on-device step MUST be reported as pending, distinct from failed.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/WhereTheHandoffStands.phpapp-modules/kernel/tests/Api/AHandoffTest.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@9829145fealemonfiber-web@495d5f5cab
  7. G9-R7acceptedMUST

    A client without deep-link support MUST fall back to a code encoding the server address.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/sdk/src/Api/Connectors.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@9829145fea
  8. G9-R8acceptedMUST

    An existing account for the person MUST be reused; the tool MUST NOT create a duplicate household identity.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    cited by
    lemonfiber@9829145fea
  9. G9-R9acceptedMUST

    The scannable code MUST NOT be a bearer credential; it MUST still require the person's own sign-in.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/sdk/src/Api/Connectors.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@9829145fea
  10. G9-R10acceptedMUST

    A device unreachable from its network MUST be reported as a reachability problem, not a client fault.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/sdk/src/Api/Connectors.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@9829145fea
  11. G9-R11acceptedMUST

    Session state MUST be reflected honestly; a signed-out device MUST NOT continue to read as connected.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/sdk/src/Api/Connectors.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@9829145fea
  12. G9-R12acceptedMUST

    Provisioning, code issue, and the connection proof MUST each be reachable non-interactively.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    cited by
    lemonfiber@9829145fea
  13. G9-R13acceptedMUST

    The hand-off's reason and steps MUST be in words every surface can show and MUST NOT name a command of one surface; the next thing to do MUST be carried as a remedy that each surface renders in its own way.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/handoff.rscrates/lemonfiber-core/src/clients.rscrates/lemonfiber/src/exit/reporting.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/WhatTheHandoffNeedsNext.phpapp-modules/kernel/tests/Api/AHandoffTest.phptests/Contract/HandingOverADeviceContractTest.php
    cited by
    lemonfiber@75851ae04dlemonfiber@3c0f78582dlemonfiber-web@495d5f5cab