---
title: Verify and deploy the data-view generation save and naming changes
type: task
status: draft
description: >-
  Browser pass and API deploy for the 2026-09-10 data-view generation commits: the ownership rule,
  the honest unsaved-edits marker, the Save to my views button, and handing the agent an edited view
  current name.
base_uri: user:task/league/verify-data-view-save-and-naming.md
created_at: '2026-09-10T19:41:00.749Z'
entity_id: 05ac8a30-99f6-4aa3-85e8-8c39eaddccac
observations:
  - ████████████████████████████████████████████████
  - ████████████████████████████████████████████████
owner_identity_uri: █████████████████████████
priority: Medium
public_read: true
tags:
  - user:tag/league-xo-football.md
updated_at: '2026-10-03T03:43:18.300Z'
visibility_analyzed_at: '2026-11-05T23:50:35.219Z'
---

Three commits landed on 2026-09-10 changing how a generated data view presents itself and how it gets saved. None has been exercised in a browser, and the API half is not deployed.

## What shipped

- `7c3e43b17` — `is-view-owned-by-user.mjs` as the single ownership rule; `get_has_unsaved_local_edits_map` now reports honestly for built-in and never-persisted views; `POST /api/data-views` returns `view_username`.
- `e6d006426` — the edit case hands the agent the view's current name (`input_view_name`, `input_view_description`, `input_view_is_user_saved` on the job row) so an in-place edit stops renaming a saved view.
- `5f277b68d` — the client half of that, plus the `Save to my views` button in the generation panel.

Settled by operator ruling on 2026-09-10: **generation is correct as-is and edits the selected view in place.** An earlier session's fork in `handle_generation_update` was reverted and must not be reintroduced.

## What remains

1. **Browser pass.** `app/core/selectors.js` cannot be specced (circular barrel), so the unsaved-edits change is source-verified only, and the `Save to my views` button has never been rendered. Per [[███████████████████████████████-█████████]] use `yarn dev:live`. Needs a signed-in account; the panel half needs one with generation enabled.
   - Run a generation onto a built-in view. Confirm the view list now shows an unsaved marker where it previously showed none.
   - Confirm the toolbar Save is enabled on a `New view` draft and on a generated result, rather than disabled under "Duplicate this view to save your changes".
   - Click `Save to my views`. Confirm it forks a built-in into a new owned view, that the saved view is attributed to the user rather than to `system`, and that the button is replaced by "Saved to your views".
   - Run a generation onto the user's OWN saved view and confirm the agent keeps the title.
2. **Deploy the API.** The container checkout leads the API, which is the safe order, but the API must deploy before it stores or forwards the three new name fields. `yarn deploy:all`.

## Known open question

On the user's own saved view, `Save to my views` overwrites that view in place, under the same label used for the fork case. Decide whether to label it by case (`Update this view` vs `Save to my views`) once the browser pass shows how it reads.
