DeigmaSign in with GitHub

What the wedge sends

This list is generated from the wire schemas the wedge is built against, not written by hand. If an engineer adds a field, it appears here or the build fails.

Never sent

  • Source code, diffs, file contents
  • Prompt or completion text
  • File names and paths (only salted hashes and the branch)
  • Screenshots, keystrokes, screen recordings
  • Clipboard, browser history, other applications
  • Microphone or camera
  • Time tracking outside episodes

The envelope, on every event

  • event_id string
    Random id of this event, assigned on the device; it makes a retry a duplicate instead of a second observation.
  • schema_version constant "2.1"
    Version of the wire contract this event was built against.
  • user_id string
    Your Deigma user id. Not your GitHub login, not your email.
  • source one of: "wedge_vscode", "wedge_cursor", "wedge_cli"
    Which wedge produced it: the VS Code / Cursor extension or the CLI.
  • origin one of: "live", "backfill"
    Whether the observation was made live or reconstructed from history at install.
  • occurred_at string
    When the thing happened on your machine.
  • sent_at string
    When it left your machine (they differ when you were offline).
  • tool.name string
    Editor or CLI name, e.g. "vscode".
  • tool.version string
    The version of that editor or CLI, so behaviour can be compared across releases.
  • type constant "session.summary"
    Which of the four event types this is.
  • model.family string
    Model family you were working with, e.g. "claude".
  • model.name string
    Model name, e.g. "claude-sonnet-5".
  • model.generation_tag string
    Coarse generation label, used to compare like with like over time.

session.summary

  • session_id string
    Id of the session, so its events group together.
  • duration_ms integer
    How long the session lasted.
  • requests integer
    How many requests you made in it.
  • iterations integer
    How many back-and-forth iterations it took.
  • tool_calls object
    Counts per tool name (read_file: 4, edit_file: 2) — names and counts, never arguments.
  • tokens_in integer
    Tokens sent to the model, as the tool reports them.
  • tokens_out integer
    Tokens received.
  • prompt_features[].h_struct number
    Structural entropy of the prompt — a number computed on your machine from text that never leaves it.
  • prompt_features[].content_mass number
    How much of the prompt was content rather than boilerplate.
  • prompt_features[].length integer
    Prompt length in characters.
  • prompt_features[].categories list of string
    Flags from a fixed vocabulary ("test", "refactor", ...) — a closed enum, not your words.
  • env_features.e_definition_version constant "E-1.0"
    Which definition of the environment score was used.
  • env_features.mcp_tool_diversity number
    How many distinct MCP tools you use, on a saturating scale.
  • env_features.mcp_tool_calls integer
    How many tool calls the session made.
  • env_features.project_instructions_loaded boolean
    Whether project instructions were loaded — the fact, never their content.
  • env_features.reusable_skill_calls integer
    How many reusable skills or commands were invoked.
  • carrier_hint.provider constant "github"
    Which forge the work belongs to (github).
  • carrier_hint.repo_id integer
    Numeric repository id, so the session can be tied to the right pull request.
  • carrier_hint.branch string
    The branch name, which is how a session is tied to the pull request it belongs to.
  • carrier_hint.pr_number integer
    Pull request number.

draft.curation

  • draft_hash string
    Salted SHA-256 of the AI draft. The salt stays on your device, so the hash is unusable to anyone else.
  • final_hash string
    Salted SHA-256 of what you actually kept.
  • kc_value number
    How much of the draft survived your edits, 0..1.
  • kc_algo_version string
    Which algorithm measured that, because thresholds differ per algorithm.
  • size_draft integer
    Length of the draft in characters.
  • size_final integer
    Length of what you kept.
  • t_validation_ms integer
    How long the draft was under review before you accepted it.
  • n_scroll integer
    How many times you scrolled through it.
  • n_edits integer
    How many edits you made to it.
  • edit_kind one of: "accept", "light", "deep", "rewrite"
    A coarse label of that: accept / light / deep / rewrite.
  • carrier_hint.provider constant "github"
    Which forge the work belongs to (github).
  • carrier_hint.repo_id integer
    Numeric repository id.
  • carrier_hint.branch string
    The branch name, which is how a draft is tied to the pull request it belongs to.
  • carrier_hint.pr_number integer
    Pull request number.

error.interception

  • draft_hash string
    Salted hash of the draft you had accepted.
  • fix_hash string
    Salted hash of the text that replaced it.
  • t_since_accept_ms integer
    How long the accepted draft survived before you corrected it.
  • kc_to_fix number
    How much of it survived the correction.
  • kc_algo_version string
    Which algorithm measured that.
  • size_fix integer
    Length of the correction in characters.
  • same_region boolean
    Whether the correction was in the same place as the draft.
  • carrier_hint.provider constant "github"
    Which forge the work belongs to (github).
  • carrier_hint.repo_id integer
    Numeric repository id.
  • carrier_hint.branch string
    The branch name, which is how a correction is tied to the pull request it belongs to.
  • carrier_hint.pr_number integer
    Pull request number.
  • defect_confirmed_by value (nullable)
    Filled in by the server later, from the pull request — empty when it leaves your machine.
  • defect_kind one of: "commit", "pr_opened", "review_requested", "review_approved", "changes_requested", "ci_passed", "ci_failed", "merged", "closed", "reverted" (nullable)
    Same: assigned by the pipeline, not by the wedge.
  • fixed_in_same_episode boolean (nullable)
    Same: assigned by the pipeline.
  • ifix_candidate boolean (nullable)
    Same: assigned by the pipeline.

wedge.status

  • kind one of: "heartbeat", "paused", "resumed", "error", "updated"
    Heartbeat, paused, resumed, error or updated.
  • wedge_version string
    Version of the wedge.
  • error_code string (nullable)
    A short code when something went wrong — never a message with your data in it.