Skip to content

GUI and docs emission: one file per controller plus index file #358

@gilesknap

Description

@gilesknap

Parent

#351

What to build

GUI and docs emission produce a directory containing one file per controller plus an index file linking to them. The index uses pvi's format_index and is always emitted — even for one controller — so the file layout is stable as the number of controllers changes. Controllers appear in the index in the order they were declared in fastcs.yaml.

Scope:

  • D4 GUI/docs file emission module: per-id files plus index file.
  • GUI emission writes output_dir/{id}.bob per controller plus an index file via pvi.format_index.
  • Docs emission mirrors GUI: one file per controller in the configured output directory.
  • Declaration order from fastcs.yaml is preserved in the index layout.
  • D4 ships with its own unit tests in this slice.
  • Existing GUI test extended with an assertion that the index file is generated alongside per-controller files.
  • Existing docs test extended analogously.
  • Single transport-level options (title, output path, format) continue to apply to all controllers — per-controller GUI/docs overrides remain explicitly out of scope per the PRD.

User stories from #351 covered: 13, 14, 15, 23.

Acceptance criteria

  • GUI emission writes output_dir/{id}.bob plus an index file for every configured controller
  • Docs emission writes one file per controller plus an index file
  • Index file is emitted even when only one controller is configured
  • Controllers in the index appear in declaration order from fastcs.yaml
  • D4 module has its own unit tests
  • Existing GUI test asserts index file is generated alongside per-controller files
  • Existing docs test asserts the same
  • Full test suite stays green

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpythonPull requests that update Python code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions