# safe-template-rendering ## Purpose Defines the pattern for safe template rendering in HTMX partial handlers to prevent truncated HTML from reaching clients. ## Requirements ### Requirement: Buffered template execution for HTMX partials All HTMX partial handlers SHALL render templates into a buffer before writing to the HTTP response. If template execution fails, the handler SHALL return an error response (HTML error fragment) instead of partial/truncated HTML. #### Scenario: Template executes successfully - **WHEN** an HTMX partial handler renders a template with valid data - **THEN** the full HTML output is written to the ResponseWriter with status 200 #### Scenario: Template execution fails due to missing field - **WHEN** a template references a field that does not exist on the data struct - **THEN** no partial HTML is written to the ResponseWriter - **AND** an error HTML fragment is returned to the client - **AND** the error is logged with template name and error details #### Scenario: Template execution fails due to nil data - **WHEN** a template is executed with nil or invalid data - **THEN** no partial HTML is written to the ResponseWriter - **AND** an error HTML fragment is returned to the client ### Requirement: Centralized template execution helper The server package SHALL provide a shared helper function for buffered template execution. All HTMX partial handlers (operator, fedwiki, dashboard) SHALL use this helper instead of calling `ExecuteTemplate` directly on `http.ResponseWriter`. #### Scenario: Helper function signature - **WHEN** a handler needs to render a template - **THEN** it calls the shared helper with the ResponseWriter, template set, template name, and data - **AND** the helper handles buffering, error detection, and error response rendering internally