Skip to content

feat: report application Git identity safely (DEV-1673) - #11

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

pavel-y-ivanov merged 8 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: application Git identity for ordinary execution and simulations. This reports the customer agent/application revision, not the SDK revision, and does not choose simulation candidates.

Changes

  • Add optional WithAppGit(AppGitOptions) and WithAppGitDisabled; infer SHA from the main application binary or reliable configured/runtime sources. Explicit selected source directories are exclusive; never fall back to the observer's checkout if a selected source is unavailable.
  • Populate existing raindrop.app.commit_sha, raindrop.app.commit_dirty, and raindrop.app.branch meanings without overwriting caller properties or SDK/release identity. New automatic branch collection is opt-in.
  • Freeze operation identity across partials, flushes, retries, and associated spans; retain explicit null/empty overrides. Bound discovery and child-process output/cleanup; unavailable or pending optional metadata is omitted without blocking hot calls.
  • Add public driver config, maintained regression tests, README guidance, and the approved non-release CI harness pin.

E2E Proof

Current head 9d123a842f3046efd7d65ae1609ba5ab93883fee adds only the normal SDK version bump from 0.1.5 to 0.1.6 to the previously qualified 49920bf29cd54419055789ed1e87e2bba05b4cb9. The version-only delta passed go test ./... again; no Git collection or transport code changed. Product candidate e3319159138041706da55cf3fc5d08ba7410213f and its later maintained-test/conformance updates received the independent fresh-context verification below:

go test ./...       PASS
go test -race ./... PASS
go vet ./...        PASS
go build ./...      PASS
scratch public consumer: 8 top-level tests PASS, including 3 fake-Git cases
harness f5d8 fault corpus: 19 pass, 34 expected_fail, 12 unsupported, 4 not_applicable
final ten-case application Git matrix: 9 pass, 1 expected_fail; complete gate PASS
real compiled AUT build-info test: 3 repeats PASS

The scratch consumer exercised real loopback event/trace traffic, main-binary VCS build info, two conflicting repositories, inherited Git selector isolation, unavailable selected source, malformed/slow/noisy/incomplete Git, checkout races, operation overrides/absence, branch opt-in and cross-client separation. CI YAML/expression validation passed. Only the conformance driver is compiled with -buildvcs=false to isolate deployment fixtures; the separate real-compiled-app regression proves actual AUT build info still wins over ambient provider/CI metadata.

Published dedicated-test-org evidence is historical, at dcee3de68fcfec9c145ab682fbc13a33a5b5c0d6 / harness f5d8: both Git scenarios PASS, verifying exact default SHA and explicit SHA plus branch through ingestion and Query API. CI run and artifacts. Its prod report is 11 pass, 2 unsupported, 2 not_applicable, no failures; its fault report is 19 pass, 34 expected-fail, 12 unsupported, 4 not-applicable. An earlier a345 run had a non-Git signal-readback failure; the dcee3de report passes that case, without any transport implementation change or assertion weakening.

The final local ten-case matrix used the same Go runtime/driver with harness d43a55edb8a66ef826f650ebff75e3659c0bff9d: 9 pass / 1 expected-fail, with only the existing DEV-1149 plain-track routing gap expected to fail. 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. The Go commits after the evaluated driver are CI pin changes only.

Pre-version-bump dedicated-test-org qualification at 49920bf29cd54419055789ed1e87e2bba05b4cb9 / final harness caa57: run34924946442. Fault artifact:20pass/34expected-fail/12unsupported/4not-applicable; Git9pass/1declaredDEV-1149 with the complete gate passing. Prod artifact:11pass/2unsupported/2not-applicable, zero failures. Both Git Query readbacks pass with observed records. Fresh CI is running for the version-only head; no tag or package release has been published yet.

Safety Verification / Risk Assessment

  • Additive public API; no intentional routing, auth, billing, event-count, application-result/error, or release-field changes.
  • No optional discovery on hot calls. Known SHA is retained if dirty state is unknown; a bad Git process cannot fabricate clean state or crash the agent.
  • Existing transport gaps remain visible. The stricter new plain-track Git scenario exposes the same pre-existing events/track route gap (DEV-1149) and has one exact new-case ratchet. Its endpoint assertion is not weakened; separate public-path capture still verifies raw null/empty Git values on the SDK's existing partial route.
  • Local independent verification and dedicated-test-org Git readback passed as detailed above. No customer credentials/data used, and no packages published or production changes made.
  • Rollback is a code revert. Confidence high for tested Go behavior, limited to the evidence above.

Dependencies and rollout

CI pins the immutable DEV-1673 harness candidate caa57a1661f3176cd59957ef0576628d96530214: https://github.com/invisible-tools/raindrop-sdk-harness/pull/98. Backend normalization prerequisite: https://github.com/invisible-tools/dawn/pull/7081. Regular event-property collection needs no database migration. Pavel has authorized normal merging/publication in dependency order after required reviews and checks; the intended Go release is v0.1.6, whose tag must match version.go. No new credentials or release-workflow edits are required. The review sweep found no outstanding Go threads and confirmed no-destination clients already skip optional Git work; that finding is being propagated to other SDKs.

deliver v0.2.2 · independent Go evaluation PASS · 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.

Final review: unchanged candidate 9d123a8 passed the maintained Git fault gate and exact-candidate production readback rerun 35013417833 attempt 2. Actual report: 11 pass, 2 unsupported, 2 not-applicable, zero failures; both Git records observed without no-show. No unresolved substantive review threads. Approved under Pavel explicit delegation.

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