Skip to content

Verify the process snapshot-to-telemetry path from a clean clone #6

Closed

Description

@stacknil

Review target

Independently reproduce the checked-in linux-process-observe snapshot -> diff -> telemetry adapter workflow from a clean clone. This is a verification task after the temporal-cohort checks added in #4, not a request for a new feature.

Relevant paths on the default branch:

  • projects/linux-process-observe/README.md
  • projects/linux-process-observe/src/linux_process_observe/cli.py
  • projects/linux-process-observe/src/linux_process_observe/diff.py
  • projects/linux-process-observe/src/linux_process_observe/adapters.py
  • projects/linux-process-observe/tests/test_cli.py
  • projects/linux-process-observe/tests/test_adapter.py
  • projects/linux-process-observe/tests/golden/diff/telemetry_events.jsonl

Reproduction

  1. Start from a clean clone of the current default branch and record the commit SHA, OS, Python version, and install command.
  2. Follow the README workflow with the checked-in baseline and changed fixtures to create both snapshots, the diff, and telemetry_events.jsonl.
  3. Compare the generated artifacts with the checked-in golden evidence and run the focused CLI/adapter tests.

The documented happy path should produce stacknil.system-evidence.v1 artifacts and seven deterministic telemetry events. Please report any byte-level or semantic difference rather than updating a golden file.

Evidence to post

  • Exact commands and exit codes.
  • A concise artifact comparison, including event count and any differing relative paths or fields.
  • Focused test results.
  • One classification: reproduced as documented, documentation ambiguity, environment-specific limitation, or probable defect.

Change threshold

Post the reproduction evidence before opening a PR. A PR is useful only if the evidence identifies a concrete mismatch; keep any correction to the smallest affected contract, test, or instruction.

Boundaries

  • Use only checked-in fixtures and disposable output directories.
  • Do not inspect the live host or capture real process/socket data.
  • Do not post absolute machine paths, usernames, credentials, or full environment dumps.
  • Preserve the same-time cohort checks, strict before/after ordering, deterministic ordering, and existing telemetry schema.

Activity

  1. stacknil commented on Oct 19, 2026

    @stacknil
    OwnerAuthor

    Reproduced from a fresh HTTPS Git clone at 1d31d4287036cf2bbd3aeb8059d7d332bedef598 on Windows 11 x64 / CPython 3.12.14, using a new isolated venv and the declared .[dev] dependencies (pytest 9.1.1). No local Git object source was used. Clone/checkout preserved committed LF bytes with command-local core.autocrlf=false; the existing network proxy was command-local.

    Commands below ran from projects/linux-process-observe with the new venv's Python. $OUT and $RUN stand for disposable directories; no input fixtures were edited.

    python -m pip install -e ".[dev]"
    python -m linux_process_observe snapshot --proc-root tests/fixtures/baseline/proc --ss tests/fixtures/baseline/ss.txt --host-id lab-host --observed-at 2026-07-05T00:00:00Z --output-dir $OUT/baseline
    python -m linux_process_observe snapshot --proc-root tests/fixtures/changed/proc --ss tests/fixtures/changed/ss.txt --host-id lab-host --observed-at 2026-07-05T00:05:00Z --output-dir $OUT/changed
    python -m linux_process_observe diff --before-processes $OUT/baseline/process_snapshot.json --after-processes $OUT/changed/process_snapshot.json --before-links $OUT/baseline/process_socket_links.json --after-links $OUT/changed/process_socket_links.json --output-dir $OUT/diff
    python -m linux_process_observe adapt --input $OUT/diff/process_diff.json --output $OUT/diff/telemetry_events.jsonl
    python -m linux_process_observe adapt --input $OUT/diff/process_diff.json --output $RUN/repeat/telemetry_events.jsonl
    python -m pytest -q -p no:cacheprovider --basetemp $RUN/pytest-temp --junitxml $RUN/evidence/focused-tests.xml tests/test_cli.py tests/test_adapter.py
    

    All commands exited 0. Each snapshot reported 4 processes / 4 links; the adapter reported 7 events. All CLI stdout was empty; stderr contained only the snapshot/adapter summaries (diff stderr empty). Focused tests: 16 passed (CLI 8, adapter 8), pytest summary 0.43s; no failures, errors or skips.

    7/7 artifacts were byte-identical to the committed goldens: baseline and changed process_snapshot.json / process_socket_links.json, plus diff/process_diff.json, diff/report.md, and diff/telemetry_events.jsonl. No golden changes.

    Independent JSON/JSONL checks confirmed the stacknil.system-evidence.v1 envelopes, paired cohort times, strict 00:00Z < 00:05Z ordering, seven existing events (one each process added/removed/modified; two each socket-link added/removed), source/target/status mapping and stable record order. Repeating the adapter reproduced identical bytes. All event timestamps equal the diff observation; snapshot_diff_observed_at does not claim occurrence times.

    Classification: REPRODUCED_AS_DOCUMENTED. This fresh execution covers Windows / Python 3.12 and saved fixtures. It does not independently reproduce native Linux, establish live-host coverage, collection atomicity, source authenticity or execution-instance attribution. Tracked clone files remained unchanged; editable installation left its six untracked .egg-info metadata files. Original checkout and prior evidence were preserved; no implementation, commit, push or PR was created.

    The Issue #6 reproduction criteria are satisfied within that scope. Recommend closure as COMPLETED; leaving the issue OPEN for the separate closure decision.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions