Developer-Dashboard

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

      command and hook resolution path as Perl, Node, Go, Java, and shell
      helpers
    - added `requirements.txt` to the skill dependency chain after
      `package.json`, installing Python dependencies through
      `python -m pip install --user --requirement requirements.txt`
    - regenerated README.md from the canonical POD after the runtime and
      dependency-chain changes so release metadata stays in sync

3.73  2026-05-15
    - added direct `node` dispatch for executable `cli/*.js` commands and
      hook files, so JavaScript-backed skill commands now run through Node in
      the same extension-resolution path already used for Perl, Go, Java, and
      shell helpers
    - fixed the platform runnable-file resolver so logical command names can
      discover matching `.js` files on Unix and Windows without breaking the
      existing `package.json` dependency-install chain used by
      `dashboard skills install`
    - fixed the prompt tmux-status unit coverage to clear `WORKSPACE_REF`
      explicitly so ordinary tmux sessions still test the non-dashboard path

3.72  2026-05-14
    - fixed collector watchdog supervision so a managed loop that stays alive
      but stops making progress is treated as stalled, restarted
      automatically, and reported explicitly instead of sitting silent until
      an operator notices
    - renamed the primary tmux workflow from `dashboard ticket` to
      `dashboard workspace`, while keeping the older `dashboard ticket`
      spelling plus `TICKET_REF` session state as compatibility fallbacks
    - added layered plain-directory `.env` refresh for workspace sessions, so
      the highest ancestor `.env` acts as the base, parent `.env` files merge
      next, the current directory `.env` overrides last, and resumed tmux
      workspace sessions are refreshed in place with dropped keys unset

3.71  2026-05-14
    - fixed live collector status writes so managed indicator ordering now
      keeps the collector array order from `config/config.json` even after one
      collector refreshes its own state, instead of dropping back to
      alphabetical order in `/system/status`, page-header indicators, and
      `dashboard ps1`
    - fixed runtime `config/routes.json` aliases so normal saved bookmarks
      such as `/app/learn.ai` can be reached through shorter custom paths like
      `/java`, and widened that runtime alias loading across `/app`, `/ajax`,
      `/js`, `/css`, and `/others` instead of limiting custom paths to
      installed skill route metadata only

3.70  2026-05-13
    - moved skill route metadata to `config/routes.json` and changed the
      schema to the flat custom-path form, where each public path maps to one
      local smart route string or an object with `to` and optional `type`
    - expanded custom skill route support beyond Ajax so installed skills can
      publish fallback custom paths for `/app`, `/ajax`, `/js`, `/css`, and
      `/others` without breaking the smart longest-prefix parent routing
    - kept saved skill-page Ajax URL generation on the canonical custom path
      from `config/routes.json`, with Ajax custom routes defaulting to `json`
      unless an explicit route-level `type` is supplied
    - fixed browser `/system/status`, page-header status, and `dashboard ps1`
      indicator ordering so managed collector indicators now follow the
      collector array order from config instead of drifting alphabetically
    - fixed `dashboard serve logs -f` so a line appended immediately after
      the initial tail output is no longer skipped by a seek-to-end race
      before follow mode starts streaming new content

3.69  2026-05-13
    - added skill-local `dashboards/routes.json` metadata so installed skill
      Ajax handlers can publish canonical custom paths, optional fallback
      aliases, and default response types such as `json`, `html`, or raw
      mime strings without breaking the smart `/ajax/<repo>/...` resolver
    - fixed saved skill-page Ajax URL generation so `Ajax(file => ...)`
      emits the declared canonical custom route when route metadata exists,
      while the longest-prefix smart `/ajax/...` route remains the primary
      resolver and custom aliases are fallback-only before a normal `404`
    - fixed browser `/system/status`, page-header status, and `dashboard ps1`
      indicator ordering so managed collector indicators now follow the
      collector array order from config instead of drifting alphabetically

3.68  2026-05-13
    - added collector overlap control with explicit `mode` and `multiple`
      config fields, defaulting collectors to singleton scheduling and
      allowing bounded parallel runs only when a collector opts into
      `mode = multiple`
    - fixed collector loop scheduling so long-running jobs no longer block
      the next interval tick for opt-in multiple-mode collectors, while
      singleton collectors still suppress overlap by design
    - made collector status updates lock-safe so active-run counts and the
      `running` flag stay correct when overlapping collector workers finish
      concurrently

3.67  2026-05-13
    - fixed managed runtime child cleanup so detached web startup helpers,
      collector stop paths, the collector watchdog supervisor, SSL frontend
      connection workers, and background page actions no longer leave zombie
      processes behind on hosts such as macOS and WSL
    - fixed the SSL frontend accept loop so child-reaping `SIGCHLD` traffic
      no longer makes the public listener shut its backend down early, while
      TERM/INT/HUP now request a clean frontend shutdown explicitly instead
      of depending on interrupted `accept()` side effects
    - tightened regression coverage so collector stop and watchdog shutdown
      tests fail if the runtime leaves direct child processes unreaped, and
      action/background SSL runtime tests now enforce the no-zombie contract

3.66  2026-05-08
    - added a collector watchdog supervisor that restarts unexpectedly-dead
      managed collector loops after startup instead of leaving them silently
      stopped until an operator notices
    - persisted watchdog restart counters, timestamps, error text, and
      `attention_required` collector status metadata so repeated crash loops
      are explicit in `dashboard collector status <name>` and collector logs
    - stopped the watchdog from thrashing forever by raising an explicit
      attention-required state after too many crashes inside the watchdog
      window, forcing a visible operator follow-up instead of silent churn

3.64  2026-05-08
    - fixed macOS Terminal.app shell bootstrap to source /etc/bashrc_Apple_Terminal
      when update_terminal_cwd is missing, preventing "command not found"
      errors on fresh macOS bash sessions

3.63  2026-05-08
    - added dockerfile manifest support to skill installation, allowing skills
      to declare Docker images that get built automatically during install
    - fixed Progress.pm to support unlimited streaming output for long-running
      operations like Docker builds, with optional max_detail_lines cap
    - added has_dockerfile metadata to skill list and usage output
    - fixed macOS Terminal.app shell bootstrap to source /etc/bashrc_Apple_Terminal
      when update_terminal_cwd is missing, preventing "command not found"
      errors on fresh macOS bash sessions

3.62  2026-05-07
    - remove matching root ddfile skill source entries when uninstalling a skill

3.61  2026-05-06
    - switched the project license from Perl_5 to MIT across the repository
      metadata, shipped LICENSE text, README, canonical POD, and Scorecard
      guardrails so the published license state is explicit and consistent
    - removed the old Artistic sidecar license file and Perl dual-license
      wording so the repo no longer advertises conflicting licensing terms

3.60  2026-05-06
    - documented the open-source license disclaimer more explicitly in the
      canonical POD and synced README, making it clear that the software is
      provided "as is", no warranty is given, and normal free-software use is
      covered by the project's baseline liability disclaimer

3.59  2026-05-06
    - fixed shared skill-nav discovery so nested installed skill trees such
      as `skills/ho/skills/coverage/dashboards/nav/index.tt` now render on
      the nested skill route itself and also join the shared nav strip above
      normal saved pages such as `/app/index`
    - taught the skill dispatcher to recurse through nested installed
      `skills/<repo>` trees when collecting skill nav pages for the web UI,
      while preserving deterministic order and disabled-skill filtering
    - fixed layered skill nav route-id discovery so `dashboards/nav/*`
      recursively includes nested fragment paths instead of only direct files
      in the first `nav/` directory

3.58  2026-05-06
    - stamped dashboard-managed helper bodies with an explicit
      `developer-dashboard-managed-helper-version` marker so installed hosts
      can prove which helper build they actually have when staged helper
      behavior drifts from the active tarball
    - fixed Debian-family bash bootstrap installs and repairs so
      dashboard-managed shell lines are kept above the standard
      non-interactive `return` guards in `~/.bashrc`, including the Ubuntu
      single-line `[ -z "$PS1" ] && return` form, which keeps
      `dashboard ticket` tmux status commands working on installed hosts such
      as `hp.local`
    - taught `dashboard doctor` to audit and repair that misplaced
      `~/.bashrc` bootstrap shape with `dashboard doctor --fix`
    - fixed Windows `.cmd` and `.bat` command dispatch on Linux, WSL, and
      packaged-install hosts so an extensionless local `cmd` helper found in
      `PATH` is normalized back to `cmd.exe` instead of being treated as a
      custom command processor
    - taught `dashboard doctor` to audit staged helper drift under
      `~/.developer-dashboard/cli/dd/`, report stale or missing
      dashboard-managed helpers such as `_dashboard-core`, and restage them
      with `dashboard doctor --fix` when the currently shipped helper assets
      can repair the runtime
    - added direct regression coverage for extensionless `cmd` shims, stale
      helper staging, and shell bootstrap drift through both source-tree and
      packaged-install paths
    - fixed packaged helper asset discovery so tarball, PAUSE, and `cpanm`
      install-test trees keep resolving `share/private-cli` from a stable
      absolute module source path even after later `chdir` calls in
      long-running test processes
    - hardened the post-build smart-router two-stage Docker guard so one
      transient upstream `cpanm` fetch or unpack failure is retried once
      before the repository packaging gate is treated as broken
    - fixed the installer docs so they match the real checkout/master
      bootstrap behavior and the current shell-bootstrap repair workflow

3.45  2026-05-05
    - fixed Unix-like `install.sh` so blank streamed installs no longer fall
      back to the stale `Developer::Dashboard` CPAN target; when no explicit
      `DD_INSTALL_CPAN_TARGET` override is set they now install the current
      checkout directly or clone GitHub `master` into a temporary checkout
      for `curl ... | sh` style bootstraps
    - added `tmux` to the shipped `aptfile`, `apkfile`, `dnfile`, and
      `brewfile` bootstrap package sets because `dashboard ticket` is a
      first-party tmux workflow
    - fixed blank Ubuntu bootstrap coverage so Debian-family installer docs
      and tests now prove the extra XS build header requirement for the live
      `cpanm` dependency chain instead of silently assuming the base image
      already ships it

3.43  2026-05-05
    - fixed managed helper staging so upgraded home runtimes remove
      dashboard-owned older flat helpers from `~/.developer-dashboard/cli/`
      and keep the active built-in helper surface converged on
      `~/.developer-dashboard/cli/dd/`
    - added direct staged-helper regression coverage so the managed
      `dashboard shell bash` helper itself must emit the ticket tmux status
      bootstrap after staging, not just the repo checkout command path
    - fixed the blank-environment integration image so host-built tarball
      installs now include the native CPAN build packages required by
      XML::Parser, Net::SSLeay, and related transitive prerequisites
    - switched the blank-environment integration image to a real Debian
      Chromium runtime so browser smoke checks no longer die on the Ubuntu
      snap-wrapper launcher stub
    - fixed the host-side blank-environment launcher so it rebuilds the
      integration image from the current Dockerfile before running the
      installed-runtime smoke, preventing stale cached images from hiding
      browser-runtime fixes

3.42  2026-05-05
    - fixed blank-mac `curl ... | sh` bootstrap so `install.sh` now
      bootstraps Homebrew automatically before reading the repo `brewfile`
      and continuing the normal macOS package flow
    - fixed Linux runtime lifecycle isolation so `dashboard restart` and
      `dashboard stop` no longer adopt or kill Developer Dashboard web and
      collector pids that belong to a different pid namespace such as a
      sibling Docker container
    - added Docker-style rolling detail lines to `dashboard skills install`
      so long-running dependency manifests keep the epic task board visible
      while streaming the newest manifest output under the active step
    - fixed tmux ticket-session prompt/status behavior so existing and new
      `dashboard ticket` tmux sessions suppress inline prompt indicators,
      move the full indicator strip into the first row of a two-line bottom
      tmux status block, keep tmux's normal indexed session/window row
      beneath it, preserve TT-backed percentage indicators and live
      collector values, refresh automatically through tmux status updates,
      and leave ordinary tmux sessions on the normal inline prompt path

3.40  2026-05-05
    - moved prompt indicators out of inline shell prompts and into tmux
      `status-right` whenever the generated shell bootstrap runs inside tmux,
      while keeping the existing prompt indicators outside tmux
    - added a dedicated `dashboard ps1 --mode tmux-status` formatter and a
      `--no-indicators` prompt path so bash, zsh, POSIX sh, and PowerShell
      all share the same tmux-aware indicator behavior

3.37  2026-05-02
    - added an explicit InternalCLI coverage guard for installed layouts where
      File::ShareDir already returns the private-cli root, keeping the numeric
      Devel::Cover gate at 100 percent after the Windows bootstrap fixes
    - added a Windows smoke guard that re-enters a fresh profile-loaded
      PowerShell session after install.ps1 so the streamed bootstrap must
      resolve `dashboard`, print `dashboard version`, and run
      `dashboard logs`

3.36  2026-05-02
    - fixed the generated PowerShell profile bootstrap so fresh Windows
      sessions no longer try to pass the multi-line `dashboard shell ps`
      output array straight into `Invoke-Expression`
    - fixed the streamed Windows installer so `irm .../install.ps1 | iex`
      now writes a self-contained profile block that can load `dashboard`,
      `local::lib`, and the PowerShell prompt bootstrap in future sessions

3.35  2026-05-02
    - fixed the installed private helper asset lookup on Windows so
      `dashboard init` no longer stops at an empty
      `MSWin32-x64-multi-thread/auto/Developer/Dashboard/private-cli`
      directory when the real shipped helper assets live under
      `auto/share/dist/Developer-Dashboard/private-cli`
    - fixed the streamed Windows checkout bootstrap so a blank host can now
      finish `dashboard init` after `irm .../install.ps1 | iex`, stage the
      home helper runtime, and continue into the generated PowerShell shell
      bootstrap cleanly

3.34  2026-05-02
    - fixed the installed private helper asset lookup so Windows local::lib
      installs no longer look for `_dashboard-core` under the wrong arch-auto
      path when the shared dist asset root actually lives under
      `auto/share/dist/Developer-Dashboard/private-cli`
    - fixed the streamed PowerShell bootstrap so `install.ps1` now runs
      `dashboard init` before activating `dashboard shell ps` in the current
      shell, ensuring the staged home helper runtime exists before the
      bootstrap asks for PowerShell shell wiring
    - fixed the generated PowerShell profile guard so future sessions only ask
      `dashboard shell ps` for bootstrap output after the staged home helper
      runtime exists under `~/.developer-dashboard/cli/dd/_dashboard-core`

3.33  2026-05-01
    - fixed the packaged install metadata so blank Windows hosts no longer
      pull test-only dependencies such as `Plack::Test` and `Test::Pod`



( run in 0.681 second using v1.01-cache-2.11-cpan-6aa56a78535 )