Skip to content

Keep updater Git operations noninteractive - #6202

Closed
0xacee wants to merge 3 commits into
Osmantic:mainfrom
0xacee:fix/update-git-noninteractive
Closed

0xacee wants to merge 3 commits into
Osmantic:mainfrom
0xacee:fix/update-git-noninteractive

Conversation

@0xacee

@0xacee 0xacee commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Current-main maintenance

Current-main conflict maintenance: merged upstream main d48ec9b1261cb2db3801b0cd767c0749b5d8f875 normally into preserved head 6628c40c57a07699e6935fedf95abf78efdf65cd. Final candidate cc45245817cf61db5b4a48804d2cf8047991bc0e. Only ods/tests/ci-suite.txt conflicted; resolved by the exact executable-entry union. Reviewed production and test blobs are unchanged. Native focused validation and commit identities passed; current-head GitHub checks must be read separately. No rebase or force push. Updater success/fetch failure/pull failure/explicit overrides and quoted Compose v1/v2/health rollback/malformed refusal passed; source/native rollback/native backup/generated backup pytest 92 passed.

Summary

Disable terminal credential prompts and SSH interactive authentication for the updater's unattended Git fetch/pull, while honoring explicit environment overrides. Failed fetch or pull follows the existing rollback path. Closes #7308.

Reconstructed existing #6202 on upstream main 36099f0324c372e3fcb5acc9258c7ba72b942e33; candidate 6628c40c57a07699e6935fedf95abf78efdf65cd. Original published head 9334c591e7e271136b566e4558072dca0b10abca is archived; original scope attribution remains in the commit. Existing unrelated source-custody, backup and lifecycle changes on main are retained.

Risk and validation

High: updater lifecycle. Mainline change targeting main.

Agent-executed native Linux tests in private ODS-QA paths:

  • RED exact main: missing noninteractive defaults and failed-fetch rollback behavior.
  • GREEN: successful update, failed fetch, failed pull and explicit overrides. Quoted Compose v1/v2 success, health rollback and malformed input cases pass.
  • Source preflight/native backup/native rollback/generated backup pytest: 92 passed on production-equivalent precommit source; final additional override fixture also passed.
  • git diff --check and commit identity gate pass. New regression is executed through ci-suite.txt; affected old fixtures now intercept the executable Git boundary used by env.
  • Root independently reviewed the final production scope and test boundaries.

This sets GIT_TERMINAL_PROMPT and SSH BatchMode. It does not promise to disable every third-party graphical credential helper, and adds no network timeout. Full installed update/fleet and independent human/maintainer release approval remain deferred. No installed app, privileges or credentials changed during fixtures; existing rollback contract remains the recovery path.

AI assistance

0xacee and Codex collaborated: the contributor supplied project direction, scope decisions and environment setup; Codex assisted with reconstruction, analysis, implementation, tests and review. Listed commands were agent-executed. Specific personal human verification is not inferred from receipts; maintainer/release approval remains separate.

Current-main maintenance (2026-10-10): normal merge of upstream main 49e64b3 into preserved PR head cc45245. Candidate b613623. The only conflict was append-only CI inventory; retained the noninteractive Git regression and all current-main entries. Upstream updater backup/changelog changes merged automatically; prior contributor and maintainer attribution is preserved.

Agent-executed Windows Git Bash / Bash 5.3.15, Python 3.11.17 fixtures passed: Git defaults, explicit overrides, successful fetch/pull, fetch refusal rollback and pull refusal rollback; quoted Compose v1/v2 paths, health rollback and malformed quoting refusal. Expected malformed-quote xargs diagnostic was asserted by the passing suite. Identity and whitespace gates passed. Production update behavior adds no GUI-helper suppression or network timeout claim. No installed-runtime mutation.

Prior 92-test Linux source/native-backup/rollback receipts remain earlier-source evidence. Current host has no usable WSL distribution; current-source Linux fixtures, live installed upgrade/recovery/fleet and independent human/maintainer release validation remain deferred. Human project direction, scope and environment setup and Codex implementation/analysis/test assistance remain collaborative; these commands were agent-executed.
Current-source CI execution inventory passes: 1233 tests, 1215 executed (273 via manifest), 18 recorded exclusions.

Hosted CI readback (2026-10-10)

Exact candidate b6136233d7252519a748a973b706b35839d81aad: 68 successful checks, 0 skipped, zero failures and zero pending at 2026-10-10T23:30:55.8963662+07:00. All open account PRs were Ready and conflict-free at this readback. Agent-executed combined source QA on upstream f332a0d8449bc35a190f232f32064e789635672a uses index-only credential-free tree b3a22250e2bfa4e09acddfe48c45762e40d3517d. It retains all five scopes, all 5,558 upstream blobs outside their union, and the test-manifest union. Focused installer/updater fixtures, two update-receipt tests, 23 deletion safety tests and CI inventory passed (1,243 tracked; 1,225 execute; 18 recorded exclusions). Current hosted frontend/API/host jobs execute the updated source. Local limitations remain recorded above. Independent human/maintainer approval and installed/platform/fleet release gates remain separate; this is not an installed combined deployment.

@0xacee 0xacee changed the title fix(cli): run update git ops non-interactively and roll back fetch failures Keep updater Git operations noninteractive Oct 4, 2026
@0xacee
0xacee changed the base branch from public-beta to main October 4, 2026 10:04
0xacee added a commit to 0xacee/ODS that referenced this pull request Oct 4, 2026
Preserve the existing PR scope and original head ancestry. Include executing CI inventory for new shell regressions; qualify against fresh upstream main with isolated native Linux tests.
@0xacee
0xacee force-pushed the fix/update-git-noninteractive branch from 9334c59 to 6628c40 Compare October 9, 2026 04:37
@0xacee 0xacee closed this Oct 16, 2026
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.

Updater Git operations can prompt or miss fetch rollback handling

1 participant