Skip to content

feat: report application Git provenance across Rust SDK operations - #22

Merged
pavel-y-ivanov merged 6 commits into
mainfrom
codex/dev-1673-git-reporting
Sep 15, 2026
Merged

pavel-y-ivanov merged 6 commits into
mainfrom
codex/dev-1673-git-reporting

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Part of DEV-1673: report the customer application / agent-under-test Git revision during ordinary execution, consistently with simulation provenance. This is not the SDK revision and does not select or change replay checkouts.

Changes

  • Add optional public AppGitConfig, client builder configuration, explicit environment overrides, automatic SHA detection with opt-out, and opt-in automatic branch reporting.
  • Reuse raindrop.app.commit_sha, raindrop.app.commit_dirty and raindrop.app.branch for events, partial interactions, manual spans and direct tools. Preserve caller properties, explicit null/empty, SDK and release identity.
  • Resolve Git in bounded background work with exclusive selected sources and sanitized child-process Git selectors. Pending, failed or unavailable metadata is omitted; hot methods never wait for Git.
  • Freeze operation identity, including absence. Share bounded operation contexts across handles and direct client calls, retaining late explicit overrides and repeated-finish behavior without leaking completed operation IDs.
  • Document precedence and saturation behavior; pin the approved non-release conformance workflow to the shared harness and hard-gate the complete ten-case Git set.

E2E Proof

Latest release candidate: fd88614f39fe3b01765203ecbdb5e4c53d97e51b, superseding historical receipts below. Adds no-destination discovery guard/public subprocess regressions and version0.0.9. Independent release build/package, extracted-package scratch consumer and10Git9pass/1declaredDEV-1149 pass. One initial global-CWD timing failure did not reproduce in exact serial rerun, full serial suite or3parallel library repeats (48/48each); disclosed rather than erased. Keyless local explicit Git and no-destination omission pass. All6CI checks pass. Exact current conformance: prod11pass/2not-applicable/2unsupported, both Git Query records observed without no-show; fullfault20pass/34expected-fail/4not-applicable/12unsupported, zero failures/timeouts. Code approved under Pavel's explicit delegation; merge/tag publication held until backend deployment verified.

Current local head 73ba47a8767994e00116b4d491e4b3b89312fa69; fresh independent product evaluation was performed at 92715c8266c3b2e46b9ef0c904e6feab45d40924, with later commits limited to conformance workflow pins:

cargo fmt / clippy -D warnings / test --all-features: PASS
cargo build --all-targets --all-features / conformance build: PASS
198 tests passed; 3 existing ignored tests
fresh cargo package, extracted package, scratch public binary: PASS
repeated finish, multiple handles, late overrides, unknown resume tools/spans: PASS
slow/no Git, frozen absence, opt-out/no subprocess, source isolation: PASS
10k operation registry reclaim/capacity/concurrency/poison tests: PASS
harness f5d8: 19 pass, 34 expected_fail, 12 unsupported, 4 not_applicable
final strict ten-case Git matrix: 9 pass, 1 expected_fail
ratchet additions/removals: empty

The single Git expected failure is the newly exposed existing DEV-1149 plain track route gap (app-git-properties-authoritative@fault). The assertion remains strict; separate public consumer capture proves raw null/empty/dirty properties on the actual partial route. This does not claim to fix that transport issue.

Published CI evidence is historical at 92715c8266c3b2e46b9ef0c904e6feab45d40924 with harness f5d8, not a current-head qualification. Its fault artifact is 19 pass, 34 expected-fail, 12 unsupported, 4 not-applicable, with no raw failures/timeouts/errors. Its prod artifact is 10 pass, 1 unrelated fail, 2 unsupported, 2 not-applicable; both Git Query readbacks pass, while signal-readback@prod is the unrelated failure.

The final local ten-case matrix used the same Rust runtime/driver with harness d43a55edb8a66ef826f650ebff75e3659c0bff9d: 9 pass / 1 expected-fail for DEV-1149. Final harness caa57a1661f3176cd59957ef0576628d96530214 changes only the runner test's scenario count and fixture expectation from d43a55e; runtime code and scenarios are identical, and its final harness qualification passed 14/14 checker and 89/89 runner tests.

Current-head dedicated-test-org qualification at 73ba47a8767994e00116b4d491e4b3b89312fa69 / final harness caa57 is now available: run34924946112. Fault artifact:20pass/34expected-fail/12unsupported/4not-applicable; Git9pass/1declaredDEV-1149 with the complete gate passing. Prod artifact:10pass/1unrelatedfail/2unsupported/2not-applicable. Both Git Query readbacks pass with observed records; the unrelated signal-readback failure remains visible.

Safety Verification / Risk Assessment

Additive configuration only; preserve existing return/error, routing, retry, SDK identity and release behavior. No new Git subprocess or wait on a customer hot path. Unknown dirty remains unknown, not fabricated clean. Registry overload/poison fails closed for optional metadata rather than blocking or misattributing an agent; exceptional simultaneous saturation is documented. Local probes used disposable fixtures and loopback endpoints only. Rollback is a code revert. Confidence is high for independently tested package paths, with existing ratcheted transport gaps disclosed.

Dependencies and release

Harness: https://github.com/invisible-tools/raindrop-sdk-harness/pull/98, pinned at caa57a1661f3176cd59957ef0576628d96530214. Backend: https://github.com/invisible-tools/dawn/pull/7081. Both merged; deployment readiness tracked separately. Ordinary events require no migration. Version0.0.9 prepared for existing Git/tag distribution; publish=false preserved, no crates.io release introduced. Normal merge/tag release follows qualification. No new credentials, release workflow edits, production SQL or infrastructure changes.

deliver v0.2.2 · independent Rust package and harness evaluation PASS with disclosed legacy gaps · Devin PR publisher.

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@pavel-y-ivanov pavel-y-ivanov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated final review under Pavel’s explicit authorization to approve Devin-authored SDK PRs. Exact fd88614 reviewed with independent package/public-consumer tests, no-destination safety regression, stable/MSRV/TLS CI and the actual conformance artifacts. Both Git production Query readbacks pass with observed records; full prod report is 11 pass / 2 not applicable / 2 unsupported. Fault Git gate is 9 pass plus the declared baseline DEV-1149 route gap. Existing publish=false Git/tag distribution is preserved. Approval covers code readiness; merge/tag publication remains sequenced behind a clean upstream backend deployment. No protection bypass or direct production SQL.

@pavel-y-ivanov
pavel-y-ivanov merged commit b743647 into main Sep 15, 2026
6 checks passed
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