Skip to content

Make the example screen runnable and verify the advertised plugin behavior #13

Closed

Description

@cchacs

Problem

At audited main ab137d8, my-plugin/plugin.json has a nav entry and script but no top-level screen entry, and the repository contains no screen.html. screen.js expects plugin-my-plugin and counter markup. README calls this a complete working example, but custom-checks passes without exercising it.

Scope

Provide a minimal working screen/settings/routes example suitable for copying and renaming. Resolve the visualization type declaration so it accurately describes the example; do not introduce a highway renderer unless it is actually needed.

Acceptance criteria

  • Add screen markup and its manifest entry; demonstrate counter interaction and loading persisted settings.
  • Verify the example mounts through the supported host screen contract.
  • Add focused automated tests for GET defaults, valid subset POST/persistence, invalid or unknown values, malformed JSON, and the 16 KiB body limit.
  • CI runs these tests and fails when required screen markup or manifest references are missing.
  • Document exact setup and verification commands, and check the copy/rename instructions against the working example.

Out of scope

Automatic issue execution, auto-merge, and a full plugin framework.

Activity

  1. pullfrog commented on Oct 13, 2026

    @pullfrog
    Contributor
  2. pullfrog commented on Oct 13, 2026

    @pullfrog
    Contributor

    Implemented a runnable example screen and automated verification for the advertised plugin behavior. PR: #16

    What landed:

    • my-plugin/screen.html + "screen": "screen.html" and "type": "utility" in plugin.json — the screen now mounts through the Host contract (verified against plugins/__init__.py's has_screen gate and plugin-loader.js's hardcoded /api/plugins/<id>/screen.html fetch).
    • tests/ + requirements-dev.txt — 19 pytest cases covering GET defaults, valid-subset POST/persistence, invalid/unknown values, malformed/non-object JSON, and the 16 KiB limit (Content-Length fast path and chunked-stream path); manifest/screen-contract tests fail when required markup or references go missing. Tests discover the plugin via plugin.json, so they survive rename.
    • custom-checks.yml now validates the screen reference/nav container and runs pytest.
    • Docs (root + my-plugin READMEs, AGENTS.md, CLAUDE.md, CHANGELOG.md) updated with exact setup/verification commands and rename instructions covering every hard-coded PLUGIN_ID.
    Task list (8/8 completed)
    • Create feature branch
    • Add my-plugin/screen.html and manifest screen key; fix type
    • Add tests (manifest/screen contract + settings routes)
    • Add requirements-dev.txt
    • Update custom-checks.yml to validate screen and run tests
    • Update docs (README, my-plugin/README, AGENTS, CLAUDE, CHANGELOG)
    • Run tests + custom-checks validation locally
    • Self-review with reviewfrog, commit, push, open PR

    Pullfrog  | View workflow run | via Pullfrog | Using big-pickle (free) | 𝕏

  3. pullfrog commented on Oct 13, 2026

    @pullfrog
    Contributor

    The implementation for issue #13 is already complete and merged (PR #16). The codebase has screen.html, updated plugin.json with screen entry and correct type, comprehensive tests (19 passing), CI workflow updated, and all docs are in place. No action needed.

    Pullfrog  | View workflow run | via Pullfrog | Using big-pickle (free) | 𝕏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions