wiki-vault/Sources/Homelab/2026-05-17-vault-push-final-verification-2026-05-16.md

1.6 KiB

created path project tags type
2026-05-17 Sources/Homelab postgres-consolidation-reflection-layer
mcp
automation
git
session-notes

Outcome

Final-final verification of the vault MCP push path after fixing the git config parser semicolon trap (commit cd3c88f). If this returns pushed: true, the queued b578f458 plus this new commit should both land on origin, closing out the full end-to-end write surface debugging chain that started with the create_artifact body/content error.

Topics Covered

The semicolon trap: git config values treat ; as comment delimiter unless the entire value is wrapped in double quotes. Inner "..." quotes get stripped by the parser as inline quoted segments. So the f-string helper !f() { echo "username=lovebug"; echo "password=$VAULT_PUSH_TOKEN"; }; f got stored as !f() { echo username=lovebug — unterminated function, no credentials returned, push fails with "could not read Username".

Fix is one line: rewrite the helper as !echo username=$VAULT_PUSH_USER && echo password=$VAULT_PUSH_TOKEN. No semicolons, no inner quotes, && isn't special to git config.

Key Learnings

Git config has its own mini-parser separate from how shells interpret quoting. ; is a comment delimiter in config values. "..." quotes get stripped (their contents kept). Always validate the parsed form, not just the string you wrote.

Follow-ons

  • If pushed: true: vault write surface complete end-to-end
  • If pushed: false: collect the actual git push error from the new container logs
  • Wrap session — major architectural debugging chain closed