Skip to main content

THE RECORDING

One question, asked of a real repository.

This is the recorded run the homepage links to as its example on real code: the whole answer, the command that produced it, and the build it came from. Back to the homepage

We asked Kin one real question about a function in Facebook's React project: what calls getToStringValue? Kin found 8 places across 3 files that use it, each with the exact file and line number, so every one can be checked against the source.

RECORDED 2026-09-07 v0.7.3

kin refs getToStringValue --kind callsReferences to 'getToStringValue' -> getToStringValue (Function) @ packages/react-dom-bindings/src/client/ToStringValue.js
referenced by 8 entities:
  hydrateInput @ packages/react-dom-bindings/src/client/ReactDOMInput.js:363 [Calls] (type_resolved) sites 373,375
  initInput @ packages/react-dom-bindings/src/client/ReactDOMInput.js:222 [Calls] (type_resolved) sites 258,260,277,278
  updateInput @ packages/react-dom-bindings/src/client/ReactDOMInput.js:88 [Calls] (type_resolved) sites 133,135,136,149,170,172,175,216
  hydrateSelect @ packages/react-dom-bindings/src/client/ReactDOMSelect.js:161 [Calls] (type_resolved) sites 194
  updateOptions @ packages/react-dom-bindings/src/client/ReactDOMSelect.js:63 [Calls] (type_resolved) sites 90
  hydrateTextarea @ packages/react-dom-bindings/src/client/ReactDOMTextarea.js:152 [Calls] (type_resolved) sites 168
  initTextarea @ packages/react-dom-bindings/src/client/ReactDOMTextarea.js:93 [Calls] (type_resolved) sites 130
  updateTextarea @ packages/react-dom-bindings/src/client/ReactDOMTextarea.js:64 [Calls] (type_resolved) sites 73,87

Every row names the calling function, its file, and the line the call sits on. Open getToStringValue on GitHub at the same revision and check them.

Kin release
v0.7.3 / macOS arm64
Kin commit
72f1cfba717b5fde8a7d6de261526a6c99a422e9
Repository revision
9b7a0d4029ee31f84446383b6530075f423e9904

AN EARLIER CAPTURE

Recording a change with no Git underneath.

A different lesson from a different run, kept because this is the only page on the site that carries it: Kin can record a change in a repository that has no Git in it.

HISTORICAL TERMINAL EXCERPT / v0.6.7

kin commit -m "Record the invoice calculation"Created semantic change 324ea310ae3c236dbe5384e573536f3e325d056d6df51e754baad00e3b26a8ea on branch 'refs/heads/main' (3 entities, 1 relations, 1 artifacts)
kin trace total_with_tax --file billing.py --compacttotal_with_tax (Function) @ billing.py
// total_with_tax ("billing.py", python)
def total_with_tax(subtotal, rate):
     return round(subtotal * (1 + rate), 2)

--- Deps ---
Read the first attempt and recorded history

The first attempt came before an author was set. Kin refused it.

kin commit -m "Record the invoice calculation"Error: config error: kin has no author identity to record for this change.

Authorship is provenance. A change attributed to nobody cannot support review attribution, blame, or audit, and it cannot be corrected later without rewriting history, so kin refuses to invent one.

Set your Git identity:
  git config --global user.name "Your Name"
  git config --global user.email "you@example.com"
Or set a Kin-specific author in .kin/config.toml:
  default_author = "Your Name <you@example.com>"

After setting a local author, the same commit command succeeded. The recorded history follows.

kin logchange 324ea310ae3c236dbe5384e573536f3e325d056d6df51e754baad00e3b26a8ea
Author: Kin Example <example@localhost>
Date:   2026-09-05T00:08:25.061847+00:00
Origin: native
Deltas: entities=3 relations=1 tree=1 policy=true
    Record the invoice calculation