NAME

Developer::Dashboard::CLI::SeededPages - shipped bookmark assets for dashboard init

SYNOPSIS

use Developer::Dashboard::CLI::SeededPages;
my $page = Developer::Dashboard::CLI::SeededPages::api_dashboard_page();

DESCRIPTION

Loads the shipped seeded bookmark instruction files used by dashboard init and runtime bootstrap so the public dashboard entrypoint does not need to embed the full bookmark source for the API and SQL dashboards. It also owns the non-destructive starter-page refresh contract: missing or stale dashboard-managed copies may refresh to the latest shipped seed, while diverged user-edited saved pages stay untouched.

PURPOSE

This module manages shipped starter pages such as project-home, api-dashboard, and sql-dashboard. It decides whether a runtime should receive a seed, whether a dashboard-managed copy is still safe to refresh, and how bridged historical managed digests are recognized during upgrades.

WHY IT EXISTS

It exists because seeding starter pages is not just a copy operation. The runtime must preserve real user edits while still refreshing dashboard-managed pages when the shipped content changed or when an older managed digest needs to be upgraded in place.

WHEN TO USE

Use this file when changing dashboard init seeding rules, starter-page refresh behavior, bridge digests for older releases, or the safe-update policy for managed seed copies in runtime dashboards.

HOW TO USE

Call the seeding and refresh routines from init/update flows with the active runtime paths and page store. Keep managed-seed 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, seed-refresh regressions for stale managed copies, and the SQL/API dashboard starter-page tests.

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/26-sql-dashboard.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.