Bỏ qua để đến nội dung

Resume last program workspace and limit cross-program aggregation to selective scoped views

DomainsDOL EnglishProduct483 words2 min read
confirmedbyProduct Design

DEC-0096 - Resume last program workspace and limit cross-program aggregation to selective scoped views

Phần tiêu đề “DEC-0096 - Resume last program workspace and limit cross-program aggregation to selective scoped views”

The previous shell model promoted a cross-program Global Today Hub as the default entry for some logged-in learners. The team later clarified that this model optimizes for a minority edge case: most learners focus on one program during a study period, even when they own or occasionally access more than one program.

A default overview page therefore creates disproportionate complexity:

  • too many branching cases for active/completed/not-started combinations,
  • a pseudo-workspace that competes with real program execution,
  • extra cognitive load before learners can resume actual study.

Logged-in DOL English now uses a program-first resume shell:

  • There is no standalone post-login global overview page in the active shell.
  • Default entry after login is resolved in this order:
    • valid returnTo -> exact protected target,
    • else last meaningful program workspace,
    • else if restore target is no longer valid -> same program root,
    • else if exactly one valid active program exists -> that program root,
    • else -> onboarding / program choice / discovery.

Last meaningful program workspace means a learner-facing program context that is safe and worth resuming. It must not blindly restore routes such as:

  • auth,
  • account,
  • checkout,
  • transient error/success pages,
  • expired or invalid deep routes.

Cross-program aggregation policy:

  • Cross-program aggregation is no longer a shell mode.
  • It is allowed only inside explicitly eligible views where combined data materially helps the learner.
  • Confirmed initial use case: schedule / calendar style views.
  • Eligible aggregate views must:
    • default to the current program scope first,
    • expose All Programs only as an explicit scope toggle when needed,
    • never pretend that All Programs is a peer program context.

Program context policy:

  • Program switcher continues to list real programs only.
  • Logged-in deep execution remains one real program at a time.
  • Canonical object ownership remains unchanged: every deep object still needs program, object_type, source, and canonical_section.
  • Aligns the shell with majority learner behavior instead of optimizing the default path for a rare multi-program case.
  • Reduces the number of shell states and edge cases the system must support.
  • Shortens time-to-resume because the learner lands directly in a relevant program context.
  • Preserves necessary multi-program utility through scoped aggregate views without bringing back a pseudo-workspace.

The product should optimize for the behavior that happens most often:

  • resume the real program the learner is already focused on,
  • keep the shell simple,
  • introduce cross-program aggregation only when the view truly benefits from merged data.

This gives DOL English a cleaner long-term navigation model:

  • Program Workspace is the default shell reality,
  • Deep Object lives under canonical owners,
  • Cross-program aggregation survives only as an explicit exception where it adds real value.