Skip to content

Preserve project metadata during refresh and retain nested Jira configuration (JVNAUTOSCI-2737) - #600

Merged
witbrock merged 1 commit into
mainfrom
codex/jvnautosci-2737-config-retention
Sep 10, 2026
Merged

witbrock merged 1 commit into
mainfrom
codex/jvnautosci-2737-config-retention

Conversation

@witbrock

@witbrock witbrock commented Sep 10, 2026 •

Copy link
Copy Markdown
Member

Merge decision: ready — Jira imports preserve independently published project metadata, and source capture retains nested configuration with explicit retrieval gaps.

User outcome

An issue refresh previously rewrote the whole project record from an earlier read. During live migration this displaced a newly published site archive reference; partial Jira project payloads could also erase the complete project description. Refreshes now update only supplied source fields, preserving concurrent writer decisions, archive references and collection associations.

Material changes

  • Retain screen tabs and ordered fields, screen/issue-type schemes and mappings, and paginated field-configuration items through the existing named read-only Jira proxy.
  • Add a service entry point to supplement an existing site archive without downloading boards again.
  • Keep unavailable configuration explicit. These reads do not activate Jira configuration or certify app-owned data.

Governing migration: JVNAUTOSCI-2737. This supplements #599; the live estate migration remains In Progress.

Evidence

  • 40 targeted tests passed across source retention, project records, cutover integrity, issue import and the migration runner. The project test injects a concurrent writer/archive/collection update and verifies that partial refresh preserves it and the full description.
  • Ruff, Black with Python 3.11 target, and diff checks passed.
  • Live canonical capture retained 69 screen layouts, 40 screen schemes, 29 issue-type screen schemes, 40 screen mappings, 29 issue-type schemes, 112 issue-type mappings and one field configuration. The 122 listed screen IDs whose detail endpoint reports nonexistence remain explicit source gaps. The archive's stored bytes passed canonical hash read-back.
  • Project association read-back exposed the old running import workers' whole-record overwrite; the regression is fixed here. Re-association and final read-back will run after those workers settle.

The endpoint contracts were checked against Atlassian's screen APIs and field-configuration APIs.

Ship boundary

  • Minimum ship criteria: Preserve project state outside the supplied refresh fields; retain nested pages and layout order; surface unavailable source data; pass affected tests and required CI.
  • Stop-ship conditions: A refresh still overwrites an independent writer/archive decision, omitted description erases retained project context, or a failed detail read is presented as complete.
  • Non-blocking observations: Estate import, final delta, app/forms/external content and paired restore are still in progress. They block migration cutover, not this additive capture and refresh repair. Old already-running import processes require a final metadata repair after completion.
  • Non-goals: No writer switch, Jira deletion/cancellation, source permission activation, UI redesign or full Confluence migration.

@witbrock
witbrock merged commit 59cbeb2 into main Sep 10, 2026
2 checks passed
@witbrock
witbrock deleted the codex/jvnautosci-2737-config-retention branch September 10, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant