Skip to content

Preserve compact log event timestamps and report untimed evidence - #74785

Merged
pelikhan merged 4 commits into
mainfrom
pelikhan/compact-log-clocks
Nov 4, 2026
Merged

pelikhan merged 4 commits into
mainfrom
pelikhan/compact-log-clocks

Conversation

@pelikhan

@pelikhan pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

Compact session logs previously exposed only export observation time, limiting event-time analysis and obscuring timestamp coverage. This change exports valid source clocks as standard OTLP timeUnixNano while keeping observedTimeUnixNano independent.

Changes

  • Preserve exact ISO nanosecond fractions and retain finite source-normalized provenance.timestampMs in the compact allowlist for numeric clocks.
  • Leave missing, invalid, negative, or uint64-overflow event times unset instead of substituting export time or ordering anchors.
  • Report gh-aw.session.untimed_events after transport-budget admission, preserving privacy masks, trace/span correlation, and existing loss accounting.
  • Document request-level quality attributes and query limitations: repeated resource counts are not additive per row, and unscanned activity remains unknown.

Validation

  • npm --prefix actions/setup/js run test:js -- --no-file-parallelism send_otlp_session_logs.test.cjs compact_unified_session.test.cjs otlp_protobuf.test.cjs unified_session_order.test.cjs - 186 tests passed, including local JSON/protobuf delivery, uint64 boundaries, source-clock precision, masking, and mixed timed/untimed budget admission.
  • make fmt-cjs && make lint-cjs
  • npm --prefix actions/setup/js run typecheck
  • make agent-report-progress - build, lint, and 108 impacted JavaScript tests passed.

No raw-session expansion, provider query pack, deployment, or workflow dispatch.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan
pelikhan marked this pull request as ready for review November 4, 2026 07:12
Copilot AI auto review requested due to automatic review settings November 4, 2026 07:12
@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

βœ… PR Code Quality Reviewer completed the code quality review.

πŸ”Ž Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

βœ… Test Quality Sentinel completed test quality analysis.

Test Quality Sentinel

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Test Quality Sentinel Β· routed: gpt56 max Β· ~1 AIC Β· βŒ– ~1 AIC Β· ⊞ 6.3K Β· β—·

πŸ§ͺ Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. βœ…

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

βœ… Ponytail Reviewer completed successfully!

Ponytail Reviewer

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Ponytail Reviewer Β· routed: gpt56 max Β· ~4 AIC Β· βŒ– ~1 AIC Β· ⊞ 118 Β· β—·

Generated by Ponytail Reviewer for #74785

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

βœ… Design Decision Gate πŸ—οΈ completed the design decision gate check. See the comment below for the result and any generated ADR draft.

Design Decision Gate πŸ—οΈ

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Design Decision Gate πŸ—οΈ Β· routed: gpt56 max Β· ~1 AIC Β· βŒ– ~2 AIC Β· ⊞ 7.7K Β· β—·

πŸ—οΈ ADR gate enforced by Design Decision Gate πŸ—οΈ

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Comment Memory

Peek at saved memory (pr-code-quality-reviewer)
reviewed_at: 2026-11-04T07:15:53Z
review_event: COMMENT
top_themes: [invalid normalized timestamp fallback]
files_reviewed: [actions/setup/js/compact_unified_session.cjs, actions/setup/js/send_otlp_session_logs.cjs, actions/setup/js/unified_session_order.cjs, docs/src/content/docs/reference/compiler-enterprise-environment-controls.md, docs/src/content/docs/specs/unified-agent-session-specification.md]
comment_count: 1

Note

This comment is managed by comment memory.

Expand the saved memory block to view or edit the persistent context for this thread.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

πŸ”Ž Code quality review by PR Code Quality Reviewer Β· copilot Β· gpt50 Β· ~3 AIC Β· βŒ– ~1 AIC Β· ⊞ 1.6K Β· β—·
Comment /review to run again

@github-actions github-actions Bot 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.

Review found one correctness issue in event-time handling: an invalid normalized clock can fall back to a different native numeric timestamp and misrepresent timeUnixNano. Please see the inline comment; otherwise the timestamp projection, privacy handling, and coverage look consistent with the stated design.

πŸ”Ž Code quality review by PR Code Quality Reviewer Β· copilot Β· gpt50 Β· ~3 AIC Β· βŒ– ~1 AIC Β· ⊞ 1.6K
Comment /review to run again

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan

pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Regarding the review status update: no code change is needed for the notification itself. The resulting invalid-clock finding was accepted and fixed in 0d3975a.

@pelikhan

pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Regarding the test analysis result: acknowledged as informational, not proof of validation or publication. No specific change was requested; the clock regression and final repository validation passed independently before pushing 0d3975a.

@pelikhan

pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Regarding the skills review status: no change is needed because the notification contains no actionable finding.

@pelikhan

pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Regarding the Ponytail review status: no change is needed because this start notification does not request a code change.

@pelikhan

pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Regarding the design gate result: no design change is requested by the reported_no_action outcome. This status is informational and is not being treated as proof of full completion.

@pelikhan

pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Regarding the managed review memory: the recorded invalid-clock finding was accepted and fixed in 0d3975a. No additional change or edit to managed memory is needed because this comment adds no independent request.

Copilot AI 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.

🟑 Changes recommended

Retained numeric timestamp provenance bypasses redaction, allowing masked source times to be recovered from exported data.

3 open issues
What changed in this PR

This PR adds source event timestamps to compact unified-session OTLP logs, separating event time from export observation time and exposing timestamp coverage.

Changes:

  • Retains normalized numeric clocks and exports source timestamps with nanosecond precision.
  • Counts untimed records after transport-budget admission.
  • Adds timestamp, masking, and budget tests, plus guidance for interpreting export-quality attributes.
File Description
docs/​src/​content/​docs/​specs/​unified-agent-session-specification.md Defines clock preservation and untimed-record requirements.
docs/​src/​content/​docs/​reference/​compiler-enterprise-environment-controls.md Documents timestamps, quality attributes, and query limitations.
actions/​setup/​js/​send_otlp_session_logs.test.cjs Adds timestamp, masking, budget, and delivery coverage.
actions/​setup/​js/​send_otlp_session_logs.cjs Exports event times and counts admitted untimed records.
actions/​setup/​js/​compact_unified_session.test.cjs Tests finite normalized-clock projection.
actions/​setup/​js/​compact_unified_session.cjs Allows finite provenance.timestampMs in compact events.

Review effort: Balanced (auto)

const projected = { type: event.type, data, ...projectScalars(event, ["timestamp"]) };
if (isRecord(event.provenance)) {
const provenance = projectScalars(event.provenance, ["component", "phase", "path", "index"]);
if (typeof event.provenance.timestampMs === "number" && Number.isFinite(event.provenance.timestampMs)) provenance.timestampMs = event.provenance.timestampMs;

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.

Fixed in f21e905: session serialization now removes derived provenance.timestampMs whenever its source timestamp is redacted by publication or exporter masks. Regression coverage verifies both masking paths.

* @returns {string | undefined}
*/
function eventTimeUnixNano(event) {
const isoTime = typeof event.timestamp === "string" ? sessionTimestampNs(event) : undefined;

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.

Fixed in f21e905: the shared timestamp parser validates calendar and time components before parsing, and invalid timestamp strings no longer fall back to normalized provenance. Added an impossible-date regression.

function eventTimeUnixNano(event) {
const isoTime = typeof event.timestamp === "string" ? sessionTimestampNs(event) : undefined;
const normalizedTime = typeof event.provenance?.timestampMs === "number" ? sessionTimestampNs({ timestamp: event.provenance.timestampMs }) : undefined;
const time = isoTime ?? normalizedTime ?? sessionTimestampNs(event);

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.

Fixed in f21e905: a supplied but invalid normalized clock stays untimed, and native numeric fallback is now limited to events without provenance. Regression coverage includes out-of-range normalized values.

@github-actions github-actions Bot 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.

Skills-Based Review 🧠

Applied /diagnosing-bugs and /tdd to the timestamp export path. Requesting changes: one spec-violating fallback and one precision loss, plus a test that misses both.

πŸ“‹ Key Themes & Highlights

Key Themes

  • Fallback reinterprets out-of-range clocks: eventTimeUnixNano falls through to the native timestamp when provenance.timestampMs is finite but out of range. This breaks the spec rule (spec line 627) that out-of-range times MUST stay unset.
  • Nanosecond precision loss: OTel timestamp values are converted to a double timestampMs, so 1792522800123456789 exports as ...787.
  • Weak test coverage: the out-of-range test at send_otlp_session_logs.test.cjs line 91 uses -1 and 8640000000000000, which the uint64 range check already rejects. It never reaches the buggy path.
  • Calendar validation gap (outside this diff): sessionTimestampNs in unified_session_order.cjs accepts impossible dates. 2026-02-30T00:00:00Z rolls over to March 2 because Date.parse normalizes it. Validate the calendar date before parsing. Not covered by an inline comment because the file is not in the diff.

Positive Highlights

  • βœ… Keeping observedTimeUnixNano separate from timeUnixNano is the right design.
  • βœ… The gh-aw.session.untimed_events attribute makes missing clocks visible.
  • βœ… The new tests cover ISO fractions, timezone offsets, and the uint64 bounds.

Verification

I probed the current code and the suggested fix in Node. The fix matched 15 inputs with 0 mismatches. I did not run the vitest suite, because vitest is not installed in this checkout.

@copilot please address the review comments above.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer Β· copilot Β· routed: haiku55 xhigh Β· ~9 AIC Β· βŒ– ~1 AIC Β· ⊞ 5.4K
Comment /matt to run again

*/
function eventTimeUnixNano(event) {
const isoTime = typeof event.timestamp === "string" ? sessionTimestampNs(event) : undefined;
const normalizedTime = typeof event.provenance?.timestampMs === "number" ? sessionTimestampNs({ timestamp: event.provenance.timestampMs }) : undefined;

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.

[/diagnosing-bugs] OTel nanosecond clocks lose precision here. unified_session.cjs converts the ns string to a double timestampMs (for example 1792522800123.4568), and this line then rebuilds ns from that double. 1792522800123456789 exports as 1792522800123456787. The body keeps the exact value, but timeUnixNano is wrong. The exactNs line in the suggestion on line 38 fixes this by parsing the original digit string.

@copilot please address this.

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.

Fixed in f21e905: digit-string source clocks are parsed as nanoseconds when normalized provenance is present, preserving all digits. Added a sub-millisecond precision regression.

}
);

it.each([-1, 8640000000000000])("does not reinterpret an out-of-range normalized clock %j in native timestamp units", async timestampMs => {

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.

[/tdd] This test never reaches the fallback. -1 and 8640000000000000 are rejected by the >= 0n and uint64 range checks, so the test passes even with the bug in the comment on line 38. Add the values that expose it, plus a nanosecond digit-string case with sub-millisecond digits so the precision fix stays covered.

πŸ’‘ Suggested test cases
it.each([-1, 8640000000000000, 8640000000000001, 1e300])("does not reinterpret an out-of-range normalized clock %j in native timestamp units", async timestampMs => {

Also add a case with timestamp: "1792522800123456789" and provenance: { timestampMs: 1792522800123.4568 }, expecting timeUnixNano: "1792522800123456789". The existing sub-millisecond case uses an ISO string, so it skips the precision path.

@copilot please address this.

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.

Updated in f21e905: the out-of-range cases now include 8640000000000001 and 1e300, and a digit-string nanosecond case verifies exact precision.

function eventTimeUnixNano(event) {
const isoTime = typeof event.timestamp === "string" ? sessionTimestampNs(event) : undefined;
const normalizedTime = typeof event.provenance?.timestampMs === "number" ? sessionTimestampNs({ timestamp: event.provenance.timestampMs }) : undefined;
const time = isoTime ?? normalizedTime ?? sessionTimestampNs(event);

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.

[/diagnosing-bugs] An out-of-range normalized clock falls through to the native timestamp, so the event gets a wrong time instead of none. Example: {timestamp: 1700000000, provenance: {timestampMs: 1e300}} exports 1700000000000000 ns. The spec at line 627 says out-of-range times MUST stay unset, so this violates it. The same path reads an out-of-range seconds clock from audit.jsonl (timestamp: 1e13) as milliseconds, giving year 2286.

πŸ’‘ Suggested fix

Only fall back to the native clock when provenance is absent, and parse digit strings with the nanosecond unit:

const exactNs = typeof event.provenance?.timestampMs === "number" && typeof event.timestamp === "string" ? sessionTimestampNs(event, "nanoseconds") : undefined;
const time = isoTime ?? exactNs ?? (event.provenance === undefined ? sessionTimestampNs(event) : normalizedTime);

I checked this against 15 probe inputs, including the existing fixtures, with 0 mismatches.

@copilot please address this.

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.

Fixed in f21e905: invalid normalized clocks cannot fall back to native timestamps, and events with provenance but no valid normalized clock remain untimed. Added coverage for an invalid seconds-based audit.jsonl clock.

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74796

PR Finisher

Submitted for publication (not confirmed pushed): merge of main; masked source timestamps now also drop derived provenance.timestampMs (publication and exporter masks); impossible ISO calendar dates are rejected; a supplied normalized clock never falls back to the native timestamp; exact ns digit strings keep full precision; regressions added.

Validation: vitest and Prettier could not be installed (npm registry cert failure), so make agent-report-progress was not run. I checked the logic with standalone Node scripts instead. CI needs a maintainer re-trigger. Review replies/resolutions are deferred until the fix is published.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~44 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74803

PR finisher

Submitted for publication (not yet confirmed pushed): merge of main plus fixes for all listed review items: calendar validation of ISO clocks, no native-unit fallback when the normalized clock is invalid/out-of-range, exact ns precision from digit strings, and dropping derived timestampMs when its source timestamp is masked (publication and exporter). Regression tests were added/extended.

Validation: vitest could not run (npm registry certificate error blocked install); only a Node sanity check and prettier were run. make agent-report-progress was not run. CI needs a maintainer re-trigger.

Review thread replies/resolutions are deferred until the fix is published.

PR finisher dispatch requested for the following outstanding work: see review threads 4464792186, 4464792234, 4464792263, 4464828987, 4464828994, 4464829000.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~38 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74812

PR Finisher

Submitted for publication (staged, not confirmed pushed): merge of main plus fixes for the 6 listed review items. Masked source timestamps now drop derived provenance.timestampMs; impossible calendar dates stay untimed; exact ns digit strings are preserved; invalid or out-of-range normalized clocks no longer fall back to native units. Regression tests were added.

Validation: vitest could not be installed (registry certificate error), so tests were not run. Only manual node checks of the changed logic passed, and make agent-report-progress was not run. CI needs a maintainer re-trigger.

Review thread replies/resolutions are deferred until the fix is published.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~36 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74819

PR finisher

Submitted for publication (not confirmed pushed): merged main and fixed the review items β€” derived timestampMs is dropped when its source clock is masked; impossible calendar dates stay untimed; native timestamp is no longer used when a normalized clock is present but invalid/out of range; ns digit strings keep exact precision; tests extended.

Validation: syntax checks and a manual calendar check only. Vitest could not be installed (npm registry certificate error), so the test suite and make agent-report-progress were not run.

Hand-off: review replies/resolutions are deferred until the push is published. A maintainer needs to run CI.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~29 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74828

PR finisher

Submitted for publication (not yet confirmed pushed): merged origin/main and addressed the 6 review items (calendar validation, no native fallback when a normalized clock is invalid or out of range, exact ns digit-string precision, masked source clock now drops derived timestampMs) with new regression tests.

Validation: only node --check and manual node probes ran. npm ci failed (registry certificate error), so vitest, prettier and make agent-report-progress did not run.

Remaining: review replies and resolutions are deferred until the fix is published. A maintainer needs to re-trigger CI and run the JS tests and make fmt-cjs.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~37 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74840

PR finisher

Submitted for publication (staged, not confirmed): merged main, and fixed the clock review items. Masked source clocks now drop derived provenance.timestampMs. Impossible calendar dates stay untimed. Out-of-range or invalid normalized clocks no longer fall back to the native timestamp. Nanosecond digit strings now export exactly. Regression tests were added or extended.

Validation: prettier and a manual node check only. Vitest could not be installed because the npm registry certificate was rejected, so the test suite and make agent-report-progress were not run. Review replies and resolutions are deferred until the fix is published. Maintainer must re-trigger CI.

PR finisher dispatch requested for the following outstanding work: see Sous-chef lines below.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~37 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74847

PR finisher

Submitted for publication (staged, not confirmed): merged main; masked source timestamps now drop derived provenance.timestampMs (publication + exporter); impossible calendar dates are rejected; OTLP time no longer falls back to native units when the normalized clock is invalid/out of range, and ns digit strings keep exact precision. Added regression tests.

Validation: node smoke checks and prettier passed. Vitest could not run locally (npm registry cert failure), so tests are unrun. Review threads are left open pending publication; CI needs a maintainer re-trigger.

PR finisher dispatch requested for the following outstanding work: items 1-7 (merge main, review threads on clock masking, calendar validation, OTLP fallback/precision/tests).

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~38 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74856

PR Finisher

Submitted for publication (staged, not confirmed pushed): merged main, and fixed the review items: derived timestampMs is dropped when its source clock is masked; invalid calendar dates stay untimed; invalid normalized clocks no longer fall back to native units; exact ns digit strings keep precision. Added regression tests.

Validation: node sanity checks only. vitest could not be installed (npm cert error), and make agent-report-progress was not run. Review replies/resolutions are deferred until the push is published. A maintainer must re-trigger CI.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~32 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74862

PR finisher

Submitted for publication (staged, not confirmed): merged main; rejected impossible calendar dates; exporter keeps exact ns digit strings; no native-unit fallback when the normalized clock is invalid or out of range; derived timestampMs is dropped when its source clock is masked (publication and exporter). Added regression tests.

Validation: only a quick Node sanity check of the clock logic. npm ci failed with a certificate error, so vitest, make agent-report-progress and lint were not run. Review threads are not replied to or resolved yet, pending publication. A maintainer needs to re-trigger CI.

Sous-chef head: 0d3975a Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5 Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~37 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74867

PR finisher

Submitted for publication (not confirmed pushed): merged main and fixed the review items β€” derived provenance.timestampMs is dropped when its source timestamp is masked; impossible ISO calendar dates stay untimed; invalid/out-of-range normalized clocks no longer fall back to the native timestamp; ns digit strings keep exact precision. Added regression cases.

Validation: could not run vitest/make agent-report-progress (npm registry certificate failure); only node smoke checks were run. Please re-trigger CI.

Review thread replies/resolutions are deferred until the fix is published.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~35 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74873

PR Finisher

Submitted for publication (staged, not confirmed pushed): merged main, plus fixes for the listed review items:

  • Masked source clocks now also drop the derived provenance.timestampMs (publication and exporter masks).
  • Impossible calendar dates (e.g. 2026-02-29) are rejected, so the event stays untimed.
  • OTLP no longer falls back to the native timestamp when the normalized clock is invalid or out of range.
  • Nanosecond digit strings are exported exactly, not rebuilt from a double.
  • Tests added for the above.

Validation: Prettier and node --check pass, and I ran a manual smoke check. Vitest could not run because npm ci fails against the unreachable registry (self-signed cert). make agent-report-progress was not run for the same reason.

Review thread replies/resolutions are deferred until the fix is published. CI needs a maintainer re-trigger after publication.

PR finisher dispatch requested for the following outstanding work (items 1–7 above).

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~36 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@pelikhan

pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

@copilot run pr-finisher skill

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Note

The pull request was not created β€” a fallback review issue was created instead due to protected file changes: #74879

PR finisher summary (submitted for publication, not confirmed pushed):

  • Merged main locally.
  • Masked source clocks now drop derived provenance.timestampMs (publication and exporter masks).
  • Invalid calendar dates (e.g. 2026-02-29) are left untimed.
  • Native timestamp is no longer reused when a numeric normalized clock is invalid; ns digit strings export exactly.
  • Added regression tests for these cases.

Validation: vitest could not be installed (npm registry self-signed cert), so the test suite and make agent-report-progress were NOT run; only a manual node check of calendar and masking behavior passed. CI is stale after push and needs a maintainer re-trigger. Review replies/resolutions are deferred until the fix is published.

Sous-chef head: 0d3975a
Sous-chef work: 36f680bdfa6524de218f6ba2ac6c2d0ea6f53cf52a580afd5128307187a99ceb 61110139dc3bcc66567cc612b195b778b7a5df2a56b0d482f768d7558cae073f 622cc74f57102a9b425a0b36e418a26c49e702fcbcb413edc7fe4c0b70538f61 88845676b8b6d7a90d19cdcc2944e9ce4a8b709b10f9b7bab12909b47cc8c0f5 abb5b8846da5863d6830acc23e9cf9633b7a9736e10ca1f5162d1b87502153c0 f07fe74be3dcb876d553e708591351855dbe50cb944beaf00171cfe4e46e4be5
Sous-chef state: 8f8c60fa4395f9008f881beda7a8e95cf576dd228b896e948d302f3424affea8

Generated by 🏁 PR Finisher Β· copilot Β· auto Β· ~35 AIC Β· βŒ– ~2 AIC Β· ⊞ 10.7K Β· β—·

@pelikhan

pelikhan commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

@copilot run pr-finisher skill

Copilot AI and others added 2 commits November 4, 2026 15:25
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@pelikhan
pelikhan merged commit b7a5015 into main Nov 4, 2026
73 of 74 checks passed
@pelikhan
pelikhan deleted the pelikhan/compact-log-clocks branch November 4, 2026 15:32
Copilot stopped work on behalf of pelikhan due to an error November 4, 2026 15:33
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

πŸŽ‰ This pull request is included in a new release.

Release: v1.2.0

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.

3 participants