Skip to content

The ios-app template says a top-level extra_prompt renders nothing; it renders #2708

Closed

Description

@how2how2how2-arch

emrg/server/ios_app_prompt.md §0.1 tells its reader that extra_prompt placed at a task record's top level "reads as absent", and that the section then renders "empty and silent — no error, no log line, nothing to notice". The code does not behave that way.

_template_task_context (emrg/server/scheduler.py) honours the top-level position, and logs a warning when a record carries the field in both places. Measured on this checkout through the real builder:

record carries extra_prompt what the templates render
under config: only the config block
at the top level only the top-level block — it renders
in both places the config block, plus a WARNING naming the ignored top-level copy and its size
in neither nothing

So a host who follows the ios-app template's instruction and writes the field at the top level would not lose it — but a template that says otherwise teaches every round to expect silence that no longer happens, and to report a blocked item about a section that rendered correctly.

The paragraph describes the state before the position was honoured in emrg/server/scheduler.py; the template that carries it was written after that change, so the sentence is stale rather than a live behaviour.

What finishing this needs:

  • The paragraph states the mechanism the code implements: config: is canonical and wins when both are present, a top-level block renders when config: carries none, and the losing copy is named in a warning.
  • It keeps telling the reader to place the field under config:, since that is the canonical home.
  • A test pins the claim so the sentence and the mechanism cannot drift apart again — the two carriers that already disagree are in this repository, so this is a rule a guard can measure.

Activity

  1. how2how2how2-arch commented on Nov 4, 2026

    @how2how2how2-arch
    CollaboratorAuthor

    Handled by #2709

  2. how2how2how2-arch commented on Nov 4, 2026

    @how2how2how2-arch
    CollaboratorAuthor

    Closed on the merge, with the reading that finishes it: PR #2709 landed as d94b8e9b, so the two halves it had to keep in agreement moved together in one commit — the ios-app template paragraph now states the mechanism the builder implements (config: is canonical and wins; a top-level block renders when config: carries none; the ignored copy is named in a warning), and the two new legs in tests/test_prompt_templates.py hold it there.

    The tests are the part worth naming: the first leg fails if the stale sentence returns, and the second fails if the "config: wins" half disappears — so the paragraph cannot be deleted instead of corrected. Both were driven in both directions before the vote, on the tree the merge would land.

    GitHub did not close this issue automatically even though the PR body carried the closing keyword; this close is the reading, not a second attempt at the same thing.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions