NAME

Developer::Dashboard::CLI::SeededPages - manifest-based tracking for dashboard-managed starter pages

SYNOPSIS

use Developer::Dashboard::CLI::SeededPages;
my $status = Developer::Dashboard::CLI::SeededPages::ensure_seeded_page(
    page  => $page,
    pages => $page_store,
    paths => $paths,
);

DESCRIPTION

Tracks the manifest used for dashboard-managed starter pages and owns the non-destructive refresh contract for already-materialized saved pages. Core no longer ships the extracted optional browser workspaces, so this module now focuses on deciding whether an existing managed page may be refreshed safely or must be preserved.

PURPOSE

This module manages the manifest and refresh policy for dashboard-managed starter pages that already exist in a runtime.

WHY IT EXISTS

It exists because refreshing dashboard-managed starter pages is not just a copy operation. The runtime must preserve real user edits while still refreshing managed pages when shipped content changed.

WHEN TO USE

Use this file when changing starter-page refresh behavior or the safe-update policy for managed page copies in runtime dashboards.

HOW TO USE

Call the refresh routines from init or runtime update flows with the active runtime paths and page store. Keep managed-page detection here so the command layer does not guess about whether a page is user-owned or dashboard-managed.

WHAT USES IT

It is used by dashboard init, runtime bootstrap/update scripts, and seed-refresh regressions for stale managed copies.

EXAMPLES

Example 1:

perl -Ilib -MDeveloper::Dashboard::CLI::SeededPages -e 1

Do a direct compile-and-load check against the module from a source checkout.

Example 2:

prove -lv t/04-update-manager.t t/05-cli-smoke.t

Run the focused regression tests that most directly exercise this module's behavior.

Example 3:

HARNESS_PERL_SWITCHES=-MDevel::Cover prove -lr t

Recheck the module under the repository coverage gate rather than relying on a load-only probe.

Example 4:

prove -lr t

Put any module-level change back through the entire repository suite before release.