Skip to content

Releases: Lucas-Liona/obsidian-pulsar-graph

1.43.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 14:31
432e55e

Stars and black holes mark the newest notes, a new install starts with nearly
everything switched on, and one Sharpness slider takes the place of Fade
type
. Pinned writing is removed; pinning a note in the graph is unchanged.

Added

  • Stars and black holes, off unless you turn them on: a soft glow around
    the newest notes, widest and strongest on the newest, for when the top of the
    fade is all one white. On a light theme the glow is black, and the newest
    notes sit in a pool of it. Each note is drawn over its own glow and keeps its
    colour. How many counts the newest notes (10 to start, up to
    250), and Pulse makes each one brighten and dim at its own pace, so a
    field of them shimmers; it draws a still graph up to 30 times a second while it is
    on screen. At the
    top of The graph in the settings, and a Stars switch under Nodes in the
    graph's own panel.

  • More of Pulsar in the graph's own panel. Under Nodes, a Glow slider
    and switches for Size by age and the Spotlight; and a new Links group
    with how links are aged (Off, Match newer, Fade) and a Trace
    sittings
    switch. They are the same settings as in the settings tab, so
    moving one moves the other, and each applies to the graph as you change it.

  • A tab's dot says when its note was edited, on hover, the way a link's
    dot does: "Edited 5 days ago". The dot used to let the pointer pass through
    it, so there was nothing to hover; a click on it still lands on the tab.

Changed

  • The settings section for the timelapse is called Animate rather than
    Replay, after the button under Display in the graph's panel that plays
    it, and says where that button is. Nothing saved changes.

  • A new install starts with most features on, so the first look shows what
    Pulsar does, and each can be switched off on its own. Newly on:

    • the spotlight on the newest note;
    • nodes sized by age;
    • links aged, fading from the newer note to the older;
    • a dot after each link in a note;
    • fresh writing, cooling over five minutes;
    • a dot beside each tab, tabs fading by how long since you looked at them
      (the icon and title, not the whole tab), and a 💤 on tabs left alone;
    • the graph's own timelapse lit as it plays;
    • a local graph measured against its own notes, with every age written;
    • links between notes written in the same sitting, traced in their own
      colour;
    • neighbour glow at 0.35, one link out, which lifts about one note in nine
      in the demo vault for 4% of the graph's contrast.

    These stay off, because each would make the plugin look broken or wrong to
    someone who did not choose it:

    • the age filter, which hides notes;
    • group temperature, which averages a whole group to one brightness;
    • the edit-intensity blend, which reads a history a new install doesn't
      have yet;
    • measuring a local graph from the note in the middle, which changes what a
      brightness means.
  • The fade starts ranked, with a maximum of 1.5, rather than even with a
    maximum of 3. One very old note squeezes every other note against the top of
    an even scale, and a maximum of 3 then draws most of them at full white: 95%
    of a real 1,121-note vault and 87.5% of the demo vault. Ranked at 1.5, the
    middle 80% of that vault runs from 0.14 to 0.81 of full white, and 8% of the
    demo is at full.

    Both of these only change what a fresh install starts with. Anyone who has
    saved settings once has every one of them saved and keeps what they had.
    Reset all settings now goes to these, and anyone who never changed a
    setting gets them on upgrade.

  • Sharpness replaces Fade type. One slider from × 0.25 to × 6 shapes the
    whole fade: × 1 is a straight line, higher keeps only the newest notes
    bright, lower keeps more of the vault lit. Step becomes a Bands switch
    with its Number of bands. The graph's own panel has a Sharpness slider in
    place of Curve. Nothing saved changes meaning: Linear is × 1,
    Exponential is its steepness, Step is Bands, and a version from before
    reads what this one saves.

  • The spotlight is green, #4dff91, rather than white, which vanished on a
    light theme. And on a light theme any spotlight colour is now drawn darker
    until it stands 3:1 off the page, keeping its hue: pale colours are the ones
    that glow on a dark theme and the ones that disappear on a light one, and the
    green there stood 1.31:1 off white against 6.69:1 for an ordinary node. It is
    drawn #33a960 on a light theme, in the graph and in a tab's dot. A colour
    already dark enough is left exactly as picked. A new install starts green; a
    colour already saved is kept, white included, and white is drawn as the grey
    #949494 on a light theme rather than not at all.

  • A note's history is drawn on one scale for every note, logarithmic back
    from now, instead of each rail being scaled to its own note. A rail covering
    twenty minutes used to look exactly like one covering a year. Now the top is
    now, labels mark an hour, a day, a week, a month and a year (then two, five,
    ten and twenty years), and a year is 420 pixels down in every note, so two
    notes read against each other. This morning still spreads out, since the
    first hour gets 93 pixels and the first day 206; a month of daily sittings a
    year ago spans about 3. The rail stops at the first label past the oldest
    sitting, so a short history stays short. A note with one sitting gets the
    axis too, and the view redraws itself once a minute while it is shown,
    since a bead's place is its age.

  • Fresh writing can cool in as little as a second, and still over as long
    as four hours. Cools over is one slider of round steps — 1, 2, 3, 5, 10, 15,
    20, 30 and 45 seconds, then minutes, then hours — marked where the unit
    changes, so the short end is as easy to pick as the long one. It used to
    start at a minute. A duration set before this keeps its value until the
    slider is moved.

  • Every other length of time is set the same way: Faded after, Marked
    after
    , Touched within, Counts as one sitting, Never spread across less
    than
    , Window, Half-life and Stays lit for are each a slider of round
    steps, written with their unit ("45 min", "6 h", "14 d") and marked where the
    unit changes, instead of a bare number whose unit was only in the
    description. Three reach further:

    • a window can be six hours, and a half-life an hour, so "today" can be
      the whole range; both stopped at a day;
    • the spotlight's window reaches a day, so it can mark everything
      touched today; it stopped at 12 hours, and its slider moved in fives from
      1, so it never landed on its own default of 30;
    • the spread floor goes down to 15 minutes, for a local graph of one
      afternoon; it stopped at an hour.

    Each is stored in the unit it always was, as a fraction where it needs one,
    so a version from before reads a value below its own floor as that floor.

Removed

  • Pinned writing. Pin this writing, Unpin writing in this note and the
    Pinned colour setting are gone, along with the status bar's right-click
    menu, which only existed to unpin. A pin lived in the open editor alone and
    was lost when the note closed, and Obsidian's own highlighting
    (==like this==) marks text to come back to better: it is saved in the
    note and can be searched. Pinning a note in the graph is unchanged. A hotkey
    set on either command is dropped with it.

Fixed

  • On a light theme the newest notes no longer vanish into the page. Past
    full strength Obsidian lightens a node, which on a dark background reads as
    brighter and on a light one fades it toward white: under the shipped maximum
    of 3, Moonstone's newest notes were drawn white on white and the graph was
    links and nothing else. On a light theme a note past full strength is now
    drawn solid and deepened toward black instead, the mirror of what a dark
    theme does. In the demo vault on Moonstone, 14 of 112 nodes were invisible
    at the new defaults and 100 at the old; now 1 is, the white spotlight. Dark
    themes are unchanged.

  • Switching theme with a graph open recolours its notes. A note with no
    group colour kept the old theme's grey through every repaint: the dark
    theme's #b3b3b3 against a light fill of #5c5c5c, measured. It follows
    the theme now, and so does the colour a pinned or spotlit note is handed
    back.

  • Blending in edit intensity no longer dims a vault with no history.
    With nothing on record every note's intensity was 0, so the blend dimmed
    the whole graph: at 0.25, the newest note reached three quarters of the
    range and no further. The blend now waits until anything is on record. A
    note's sittings are also ranked against every note, a note with no record
    counting as 0, so of two notes the same age the one returned to more is
    never the dimmer.

  • The note history's rail ends at its oldest bead. It ran from when the
    first sitting began, but each bead is drawn where its sitting ended, so the
    bottom of every rail was a label with no bead at it: a note with one sitting
    had its bead at the top of an empty line, labelled "4 hours ago" at both
    ends, and in a longer history the oldest bead floated above the bottom by
    its own length.

  • How long a sitting is can be set again. Counts as one sitting decides
    how the edit history counts sittings, but it was only shown with Trace what
    was written together
    on, which is off by default. It is listed under
    History now, and with the trails when History is off.

  • The caption's switch is always there. Say so on the graph draws a line
    on every graph, filter or not, but its switch was only shown with the filter
    on, so the only way to turn the caption off was to turn the filter on first.

  • Brightest in the graph's own panel goes as high as the setting. It
    stopped at 6 whil...

Read more

1.42.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 16:55
2177555

Fixed

  • Dragging the age filter shows its result again. While a handle was held,
    the notes outside the range were meant to disappear with the graph held
    still, then rebuild on release; nothing disappeared, because Obsidian puts
    back the flag Pulsar hid them with on every frame. They are hidden in a way it
    leaves alone now, and a held drag costs less per frame than before
    (0.44–0.47 ms against 0.58–0.62 ms in the demo vault).

  • A graph is filtered from its first build after Obsidian starts. A graph
    restored at startup, or opened while the tab bar was switched off, was
    filtered against ages that had not been worked out yet, so it showed every
    note until something made it filter again. Starting with a graph restored and
    the filter on is now 35% faster at 10,000 notes and 26% faster at 50,000,
    because the first build is only the notes the filter keeps.

  • A replay ends. Once the timelapse has drawn every note the filter allows,
    the graph goes back to today's brightness. It used to wait for the vault's
    newest note, which the filter may never draw, so it stayed in replay
    brightness.

  • A note deleted while it was open stays out of the edit history. It could
    be written back as seen a moment after it was deleted.

  • Switching Pulsar off and on quickly keeps the last sitting. Turning it
    back on read the history before the save from turning it off had landed.

  • A settings tab left open across a reload can no longer save over newer
    settings
    , such as a pin made since.

  • A closed graph is let go of. A graph whose tab had been closed could stay
    attached and be rebuilt with the others on every refilter.

  • An old filter range saved with equal minimum and maximum opacity keeps the
    notes it kept.

Documentation

  • How Pulsar's performance is measured, in docs/performance.md: the
    method, the machine, the results release by release, flame graphs, threats to
    validity and the corrections, with a notebook that recomputes every number
    from the data in the repo.

1.41.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 06:55
a7073ed

Fixed

  • A local graph keeps its own note through the age filter. The filter
    never removes the note you have open, but a local graph linked to one pane
    keeps its note while you work in another. With a filter keeping older notes
    than that one, looking away dropped it from its own graph, and dragging a
    handle hid it the same way. Each graph now spares the note it is built
    around.

  • The edit history survives a write cut short. Obsidian writes a file in
    place, so quitting or crashing part way through a save left history.json
    cut off, and the next load started a new history. Each save now writes
    history.backup.json first and history.json second, and a history that
    will not read is read from the backup. In the demo vault, a history cut in
    half at reload went from 112 notes to 0 before and kept all 112 after. A
    save takes about 2 ms longer.

  • An unreadable history is never written over. A history file that was
    there but could not be read, such as one held for a moment by a sync tool or
    a virus scanner, used to be replaced by an empty one at the next save:
    112 notes to 0 in the demo vault under a 20-second lock. Pulsar now records
    nothing until it can read the file, and tries again every half minute. A file
    that reads but is damaged is kept as history.damaged-<date>.json before a
    new one starts.

  • The spotlight and pins are drawn in exactly the colour picked. Above a
    maximum opacity of 1, Obsidian's graph lightens each colour channel
    separately, which turned a green spotlight (#4dff91) turquoise
    (142, 255, 255) at a maximum of 1.85. Painted nodes are now drawn at an
    opacity of at most 1, so the colour stays (77, 255, 145). Grey nodes still
    go whiter, as a high maximum intends.

  • The histogram's overflow mark is no longer red. It ran into the start of
    the red curve over the first bar. It is now a lighter grey than the bars.

Performance

  • Fresh writing's colours restyle only the editors. They were set on the
    whole window, so every load with fresh writing on restyled every element in
    it. With six editors open in the demo vault, a load's restyling and editor
    reconfiguration went from 20.72 ± 1.00 ms to 9.31 ± 1.30 ms, and changing a
    fresh-writing colour saves the same.

Documentation

  • The settings reference lists every setting, 66 rows in the settings
    tab's order. The obsidian typings are pinned to the version the build uses,
    so a build of the source reproduces the release.

1.40.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 00:55
ca3e4a5

Added

  • A dot after each link, off by default, under Elsewhere → Links in
    notes
    . Every link to a note that exists gets a dot at the brightness that
    note has in the graph, in the pin colour if it is pinned, and hovering it
    says when the note was last edited. It works in reading view and in the
    editor. Links to notes not yet written, web links, embeds and anything in code
    get no dot. In a test note of 30 links, a keystroke cost 0.988 ± 0.326 ms with
    dots on and 1.021 ± 0.377 ms with them off; reading view spends
    0.24 ± 0.09 ms per render adding them.

  • Fresh writing has a status bar item of its own: a paint bucket and the
    number of characters in the open note that still look lit. It follows the text
    as it cools instead of updating once a minute. Click it to cool this note's
    writing; right-click to cool or unpin. The tooltip counts pinned characters,
    and a note with only pins left shows the bucket alone. New command: Unpin
    writing in this note
    .

  • A Clear and reset section, last in the settings, holds the three actions
    that cannot be undone: Forget everything recorded, Reset all settings and
    Unpin every note, moved there from History, Presets and Pins. Each needs a
    second click within 4 seconds, and is greyed out when there is nothing to act
    on. Deleting a saved preset also asks twice.

Changed

  • Cooling fresh writing keeps pins. Clicking the status bar item, the Cool
    fresh writing
    command and Start again all used to erase pinned writing as
    well.

  • Resetting settings keeps pinned notes, along with saved presets and which
    sections are folded. A reset used to empty the saved pin list without
    touching the one the graph draws from. Pins have their own button now.

Fixed

  • A tab counts as ignored from when it was left. The attention clock
    stamped a note only when it was opened, so a note sat in for twenty minutes
    read as twenty minutes ignored the moment it was left: its tab faded, it could
    be marked stale, and the next session started from the same time. With tab
    fading on, a tab left after 20 minutes was drawn at 0.567 in 1.39.0 and is now
    drawn at full strength. Leaving for the graph or an empty tab, switching
    Pulsar off and quitting all count as leaving.

  • A load reconfigures no editor it does not need to. Every load had Obsidian
    reconfigure every open editor twice, whether fresh writing was on or not; in a
    real vault the two took 51 ms between them. Now a load reconfigures none while
    fresh writing and link dots are both off. With fresh writing on it still
    reconfigures once, one fewer than before. (Corrected after release, twice.
    This first said one reconfiguration took 51 ms. It then said the one left
    cost 14.7 ± 1.6 ms against 7.2 ms for 1.38.0's two, but that figure included
    a restyle of the whole window that 1.38.0 paid just after its
    reconfigurations instead of during them. Timed together, a load with fresh
    writing on cost 25–28 ms after 1.40.0 against 31–34 ms in 1.38.0, and 1.41.0
    removes most of the restyle.)

1.39.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 22:06
9106c12

Performance, from profiling 1.38.0 in a real vault, the demo vault and a
generated bench vault of 20,000 notes. The bench numbers use a real vault's
settings, whose age filter keeps 4,168 of the 20,000.

Corrected after release. The figures below come from a later run of 1.38.0,
1.39.0 and Pulsar off side by side in one session, every run kept. The
originals compared measurements taken hours apart and timed no 1.38.0 graph
opening at all; side by side, a switch between notes the filter hides gained
less than first published.

Fixed

  • A graph opens already filtered. A new graph was first built from every
    note and filtered only afterwards, and a graph already open when Pulsar loaded
    stayed unfiltered: 1,115 nodes instead of 241 in a real vault after a reload.
    Graphs are now filtered from Obsidian's very first build of them, so opening
    one costs what the filtered graph costs. Opening the bench vault's global
    graph settles in 6.16 ± 0.11 s and blocks the main thread for 0.30 ± 0.05 s,
    against 10.94 ± 0.76 s and 5.02 ± 0.69 s in 1.38.0, and 30.65 ± 3.88 s and
    25.84 ± 4.31 s with Pulsar off.

  • A graph stops drawing once nothing changes. A graph whose timelapse had
    been started never went idle: Obsidian keeps handing it the same data about
    nine times a second, and Pulsar repainted and woke it every time. With a
    timelapse started in the demo vault, its renderer used 0.31 ± 0.02 of a core
    in 1.38.0; it now uses 0.07 ± 0.01, the same as with Pulsar off.

  • A note switch does less. It re-ran the filter over every open graph even
    when the two notes involved could not change what was shown, and repainted
    every graph twice, the first time for nothing. On the bench, the main thread
    was blocked for 149.6 ± 12.0 ms per switch in 1.38.0 and is now 78.3 ± 7.1 ms.
    Switching between notes the filter would hide, which does need a refilter,
    went from 157.2 ± 9.7 ms to 119.0 ± 7.5 ms. In a vault whose filter keeps old
    notes, switching between recent ones still refilters, because that really
    does change what is shown.

  • Refiltering is cheaper. A refilter that leaves a graph as it was no longer
    rebuilds it: 1.162 ± 0.253 ms down to 0.343 ± 0.048 ms in a real vault.

1.38.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 16:31
91861a2

Added

  • Measure a local graph against itself, off by default. Notes that link to
    each other tend to have been written together, so graded against the whole
    vault a panel's notes come out nearly alike: across 123 panels in a real
    vault, the median spread was 11% of the brightness range, against 100% when
    each panel was measured on its own. The spotlight follows the same setting and
    picks the newest notes in the panel.

  • Measure a local graph from the note in the middle, off by default, with a
    toggle in the graph's own panel. Brightness becomes how close in time each
    note is to the centre, in either direction, which answers what else was being
    worked on at the time
    . In 66 of 123 panels there were notes on both sides of
    the centre, and a one-sided age scale discards one side.

  • Write every age in a local graph, off by default. The ages above titles
    are one setting for both graphs, and writing one on every title is noise
    across a whole graph; a local graph can now be told to write them regardless.
    They follow the titles, so they appear on the nodes whose names Obsidian is
    drawing at that zoom: 5 of 13 in one panel.

  • A spotlight by time window: everything touched in the last so many
    minutes, however many that is, including none. A count always answers: at an
    idle moment in a real vault the newest three notes were 21, 34 and 124 minutes
    old, so a note left two hours ago was marked as where you are. The spotlight
    itself is still off by default, and a count is still what it does when
    switched on.

  • Pins show in the tab bar. Where the brightness dot is on, a pinned note's
    dot takes the pin colour, so a note held bright no longer looks like one
    edited this morning. While nothing is pinned, the graph's own panel says
    Right-click a node to pin it.

  • The graph's own timelapse is lit as it plays, off by default. Obsidian's
    Start timelapse animation replays the vault in creation order, but each note
    was drawn at today's brightness, so the first half of a replay was nearly
    black: at 180 days back, all 72 notes that existed sat at minimum. Each note
    is now graded from the moment being shown, and the graph goes back to reading
    today once the replay catches up.

  • A Pulsar section in the graph's own panel, beside Filters, Groups, Display
    and Forces. Dimmest, brightest, the curve, title size and ages sit there with
    the age filter, and they are the same settings the dialog holds. Sliders apply
    while you drag and save 400 ms after the last step; a measured five-step drag
    saved once.

Changed

  • Settings in seven parts instead of fifteen headings: Time, The graph,
    Highlights, Tabs, Elsewhere, Setup and Measurements, each of which folds shut
    and remembers it. The graph and Tabs carry a switch of their own, on by
    default, that releases what that part draws rather than dimming it: switching
    the graph off took attached renderers from 1 to 0. All 58 settings are still
    there, with one renamed to Show the open note's age now that it sits under a
    status bar heading.

  • A pin outranks the spotlight. The spotlight skips pinned notes and takes
    the next newest instead, so you see both the note you chose and the one you
    were last in. Where the two still land on one node the pin's colour wins,
    reversing the order 1.37.0 shipped.

  • A local graph's caption describes the panel, not the vault: how many notes
    it holds, how many the age filter has hidden, and how old they are. Over a
    panel the vault line was true and useless, and without the hidden count a
    panel the filter has nearly emptied looks just like a note with no links.

  • The age filter's handles go where you aim. A press goes to the nearest
    handle by distance; at the narrowest range the handles sit four pixels apart,
    and before this the one drawn later took presses aimed at the other. Hovering
    the histogram describes that stretch alone, and the caption gives the share as
    a percentage.

  • The age filter's histogram is a smooth curve over 40 bars, on a
    square-root scale with a labelled axis, and the bars inside the selection
    brighten. It used to be scaled to its tallest column, which held 300 notes
    against 5–15 in the rest, so everything else was drawn flat. Notes piled at
    the floor or ceiling of the fade are left out of the curve, and their bar is
    capped in red.

  • Figures are separated by a centred dot rather than commas wherever the
    plugin reports numbers: the range caption, the caption over a graph, the panel
    summary, the statistics and the status bar.

  • Docs: the README is caught up with what has shipped, and the loop behind
    this repo's measurements is written down.

Fixed

  • An unloaded plugin no longer keeps drawing on the graph. Instances left
    behind by a reload kept their hooks and put them back on every graph refresh,
    which is how one node's title came to carry seven age labels. After three
    reloads with an update pending and three graph refreshes, the render chain
    held 22 wrappers; it now holds 1. A title Obsidian rebuilds also gets its age
    label back.

  • The age filter no longer sorts the vault once per note. Dragging it,
    hovering its histogram and every graph pass were quadratic in vault size, and
    a pass runs after every note save while a graph is open. On a 1104-note vault
    a full pass over both graphs went from 276.8 ms to 2.94 ms.

  • The age filter measures along the curve, and draws what it selects. The
    histogram drew pooled brightness while the handles selected on opacity clamped
    at 1, so at the default settings the top 69% of the curve was a single point
    on the line. Both now read a note's own position along the curve, and saved
    ranges, presets included, are converted on load so they keep selecting the
    same notes.

  • Two settings were filed in the wrong place. The stale-tab settings were
    drawn under Pins, so they looked missing to anyone reading the Tabs section,
    and the status bar age sat under Labels.

1.37.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 22:04

Two features, one idea: a note is more than the single moment Obsidian records against it.

Until now Pulsar read exactly one number per note — its modification time — and everything followed from that. That answers what have I been working on and nothing else. This release adds the two things it could never say: this one matters regardless of its date, and here is everything you did to it, not just the last thing.

Pins

The note you are heading back to is, by definition, one you have not touched lately. The longer you leave it the fainter Pulsar draws it, and under the age filter it eventually leaves the graph altogether — the thing you most need to remember is the thing the plugin is busy forgetting.

A pin overrules the clock. Pinned notes are held at full brightness, given a colour of their own, and cannot be removed by the age filter.

Right-click a node in the graph, or a note in the file explorer, and choose Pin in the graph — or use the command for the note you have open, which takes a hotkey. The settings tab lists what is pinned with an Unpin beside each.

Pins write nothing into your notes and leave your modification times alone, which matters because this plugin reads them. They follow a rename, and they are deliberately left out of saved presets — a preset is a look, and a pin is a path in your vault.

→ Pins

A note's history, drawn as beads

Obsidian keeps one modification time per note and throws the rest away, so the graph can tell you a note was touched this morning and never that it was touched every morning for a month and then abandoned. Pulsar has kept the rest since 1.22.0; this is the view it was collected for.

One bead per sitting, down a rail in the sidebar. Position is when, size is how long it ran, brightness is the vault's own fade curve, and hovering gives the date, the duration and how much the note grew. Open it with Show this note's history.

Positioned rather than listed, because the shape is the point: it is what tells "edited three times today" from "appended to once a month" without reading a number, and the gaps say as much as the beads.

The rail is scaled to that note's own history, not the vault's — against the vault a note with two sittings three hours apart put both beads in the same pixel, because three hours is nothing beside eleven months.

→ A note's history · closes #26

Also

  • Fixed a colour the plugin could leave behind. Releasing a node's colour put node.color back correctly and still left it drawn in the old one, frozen a few units short. Two causes: mid-rebuild a node's colour reads back undefined, so the code preserving it preserved nothing; and the renderer eases a tint a tenth of the gap per frame and truncates, so a channel climbing the last few units moves by zero and stalls permanently. Easing down converges, easing up does not. After the fix, 0 of 111 nodes disagree between drawn tint and colour; before, 1 did. This affected the spotlight every time it moved on.
  • The spotlight and pins now share one record of what each node was painted. Two of those, each saving and restoring the same node's colour, is how a graph group's colour gets lost for good.

1.36.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 19:52
67a27bd

Three small things, all about making what matters easier to see.

The line across the top of the graph

It used to appear only while the age filter was narrowing something. It is now on whenever you want it, and it reads:

110 of 110 notes, 2 hours ago back to 11 months ago

The Age filter prefix went with it, because it is no longer only about the filter. While you are filtering, it is necessary — a graph with half its notes taken out looks exactly like a graph. While you are not, it still answers the question a graph raises on its own: what am I looking at.

The spotlight can cover more than one note

At 1 it marks the thing you touched last. At 5 it marks the last five, which reads as where you have been rather than where you are — a short trail through the graph instead of a single point.

Every spotlit node keeps the colour it had underneath, so turning the count back down hands them all back exactly as they were.

Sleeping tabs

A tab you have left alone can now wear a 💤 instead of the quiet line down its edge. It takes the brightness dot's place rather than sitting beside it: a narrow tab has room for one or the other, and a tab you are being invited to close has nothing useful to say about how bright it is.

Nothing closes on its own, as before. Close stale tabs is still a command you run.


📖 The graph · The age filter · Tabs

1.35.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 18:30
0949a0b

One toggle at the top of the settings, and off means off.

Switching it off actually switches it off

Not "stops drawing" — nothing is watched, nothing is cached, no timer runs, no editor carries anything of ours, and every graph is handed back its own colours. Measured across the switch:

on off
graphs hooked 3 0
notes cached 1,090 0
editor extensions 1 0
nodes carrying a Pulsar colour 1,090 0
status bar item yes no

Every feature below it can still be switched off on its own, and almost all of them already are until you ask.

Commands stay in the palette either way, so a hotkey you assigned survives being switched off. They say so if you press one.

The settings page is readable now

It had grown to thirteen sections in the order they were built, with no explanation of what any of them were for.

  • Every section says what it is for. You should not have to work out what "Fade" fades — which is also why it is now called Graph fade.
  • A rule between sections, so the page has a shape.
  • Ordered by surface, not by build history: time, then the graph in drawing order, then the places that are not the graph, then the data underneath. If you only want the graph, you never scroll past Age filter. Fresh writing used to sit between Links and Size for no reason at all.
  • Switched off, it collapses to the one switch — 61 controls become 1.

📖 All the documentation

1.34.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 18:30
0ddb67f

Three changes about one complaint: the thing you are looking for stops being findable exactly when you narrow down to it.

Measure age against whatever the graph is showing

A third option beside the vault's whole history and a recent window.

Filter down to your brightest few per cent and every note left is at the top of the range together — so the gradient tells you nothing precisely when you have asked the most specific question. Measured on a 1,089-note vault filtered to its brightest 2%:

measured against the 194 notes still on screen
the vault's whole history 0.981 – 1 — all at full brightness, all identical
whatever the graph is showing 0.05 – 1 — the full range

It respects Obsidian's own Filters and the graph's search box too, so typing a tag there turns the search box into a time lens for just those notes. It pairs especially well with the rank scale.

Two things keep it honest. It only ever decides how bright, never which notes are in — the filter still reads the absolute scale, so it cannot feed itself. And the range is held open to a floor, six hours by default, because three notes from the last ten minutes genuinely are all recent and drawing the nine-minute-old one as ancient would be a lie.

The spotlight can grow the node

Worth knowing why it needed to. Obsidian sizes a node by its link count and nothing else — and the note you wrote last is almost always the least-linked thing in your vault. So the one node you always want to find was reliably the smallest on screen: measured at the size floor with 12 of its 35 neighbours larger than it.

It multiplies on top of any other sizing rather than replacing it, so switching on size by age can never make the spotlight shrink.

The spotlit note is never filtered out

On the same rule the note you have open already had. A filter quietly removing the one node the graph is pointing at is the graph disagreeing with itself.


📖 Time · The graph