<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://nodesify.github.io/astria/blog</id>
    <title>astria Blog</title>
    <updated>2026-09-26T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://nodesify.github.io/astria/blog"/>
    <subtitle>astria Blog</subtitle>
    <icon>https://nodesify.github.io/astria/img/favicon.svg</icon>
    <entry>
        <title type="html"><![CDATA[astria 1.0.0: the graphify rebrand is complete]]></title>
        <id>https://nodesify.github.io/astria/blog/astria-1-0-0</id>
        <link href="https://nodesify.github.io/astria/blog/astria-1-0-0"/>
        <updated>2026-09-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[1.0.0 is out — npm install -g @nodesify/astria. This is the release the project is fully astria: the binary, the npm package, the .astria/ graph directory, the environment variables, the skill files. Same idea that inspired it, new engine throughout.]]></summary>
        <content type="html"><![CDATA[<p><strong>1.0.0</strong> is out — <code>npm install -g @nodesify/astria</code>. This is the release the project is fully astria: the binary, the npm package, the <code>.astria/</code> graph directory, the environment variables, the skill files. Same idea that inspired it, new engine throughout.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="coming-from-nodesifygraphify">Coming from <code>@nodesify/graphify</code>?<a href="https://nodesify.github.io/astria/blog/astria-1-0-0#coming-from-nodesifygraphify" class="hash-link" aria-label="Direct link to coming-from-nodesifygraphify" title="Direct link to coming-from-nodesifygraphify" translate="no">​</a></h2>
<p>1.0 is a rebrand, not a rewrite of your data. Install the new package and run once:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">astria migrate          # renames .graphify/ -&gt; .astria/ and the global store</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">astria install          # refreshes AI-tool skills/hooks (also cleans the old graphify entries)</span><br></div></code></pre></div></div>
<p><code>GRAPHIFY_*</code> environment variables keep working; <code>ASTRIA_*</code> takes precedence.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-new-since-080">What's new since 0.8.0<a href="https://nodesify.github.io/astria/blog/astria-1-0-0#whats-new-since-080" class="hash-link" aria-label="Direct link to What's new since 0.8.0" title="Direct link to What's new since 0.8.0" translate="no">​</a></h2>
<ul>
<li class=""><strong>Hypergraph, deterministically</strong> — n-ary <code>hyperedges</code> produced without an LLM: community <code>participate_in</code> groups and <code>shares_reference</code> literal groups. They flow into graph.json, the report, the wiki, HTML hulls, and <code>explain</code>. Graphify's hyperedges are LLM-produced; ours are local and reproducible.</li>
<li class=""><strong>Cross-repo global graph</strong> — <code>~/.astria/global.db</code>: <code>global add/remove/list/path</code>, repo-tag prefixed merging that unifies external symbols across repos, <code>same_type_as</code> type edges, and cross-repo call resolution that fails closed on ambiguity.</li>
<li class=""><strong>Graph health + feedback loop</strong> — <code>diagnose</code> (read-only health report), <code>save-result</code>/<code>reflect</code> curated memory (<code>.astria/memory/</code> → graph nodes → <code>LESSONS.md</code>) alongside automatic learned edges, build-time validation, a JSONL query log, and always-on instruction blocks in <code>AGENTS.md</code>/<code>CLAUDE.md</code>.</li>
<li class=""><strong>Ingest breadth (offline-first)</strong> — Cargo workspace topology, <code>.mcp.json</code>/<code>mcp_servers.json</code>/<code>claude_desktop_config.json</code> (env names only, never values), <code>add --scip</code>, <code>add --postgres</code> (read-only), and transcript sidecars in <code>.astria/transcripts/</code>.</li>
<li class=""><strong>SSRF-hardened URL ingestion</strong> — <code>add &lt;url&gt;</code> validates every redirect hop, blocks loopback/private/link-local addresses (IPv4 and IPv6), and slugifies downloaded filenames so a hostile URL cannot write outside <code>raw/</code>. The HTML export renders labels as text, never interpolates HTML.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="docs-versioned">Docs, versioned<a href="https://nodesify.github.io/astria/blog/astria-1-0-0#docs-versioned" class="hash-link" aria-label="Direct link to Docs, versioned" title="Direct link to Docs, versioned" translate="no">​</a></h2>
<p>The docs site now ships per-release versions: <strong>1.0.0</strong> is the default, 0.8.0 stays available as an archive, and <code>Next</code> tracks what is landing after 1.0.0. See the <a class="" href="https://nodesify.github.io/astria/docs/intro">docs</a> — and <a class="" href="https://nodesify.github.io/astria/docs/explanation/benchmarks">benchmarks</a> for how every number is measured and reproduced.</p>
<p>astria is developed at <a href="https://github.com/Nodesify/astria" target="_blank" rel="noopener noreferrer" class="">Nodesify/astria</a> — issues, the <a href="https://github.com/Nodesify/astria/tree/main/worked" target="_blank" rel="noopener noreferrer" class="">worked examples</a>, and the head-to-head benchmark data all live in the repo. It is built by <a href="https://nodesify.com/" target="_blank" rel="noopener noreferrer" class="">Nodesify</a>.</p>]]></content>
        <author>
            <name>Nodesify</name>
            <uri>https://github.com/Nodesify</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[nodesify-graphify 0.8.0: markdown wiki, Obsidian vault, local embeddings]]></title>
        <id>https://nodesify.github.io/astria/blog/nodesify-graphify-0-8-0</id>
        <link href="https://nodesify.github.io/astria/blog/nodesify-graphify-0-8-0"/>
        <updated>2026-09-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[0.8.0 is out — npm install -g @nodesify/graphify. The graph now exports itself as documentation, adds a local semantic layer, and keeps learning from how you use it.]]></summary>
        <content type="html"><![CDATA[<p><strong>0.8.0</strong> is out — <code>npm install -g @nodesify/graphify</code>. The graph now exports itself as documentation, adds a local semantic layer, and keeps learning from how you use it.</p>
<p>Highlights:</p>
<ul>
<li class=""><strong>Markdown wiki export</strong> — <code>wiki</code> / <code>run --wiki</code>: an agent-crawlable wiki (<code>index.md</code> + one article per community and god node, relative markdown links that GitHub and Obsidian both navigate). <code>update</code> regenerates it, so it never drifts stale.</li>
<li class=""><strong>Obsidian vault export</strong> — <code>wiki --format obsidian</code>: per-node notes with frontmatter tags and <code>[[wikilinks]]</code>, community overviews, and a <code>graphify.canvas</code>. On this repo: 2,040 notes, 5,000 canvas edges.</li>
<li class=""><strong>Local semantic layer</strong> — <code>run --embed</code> downloads a small local model once (~90 MB, then offline forever — no API key) and adds <code>similar_to</code> edges plus embedding-backed query recall. Communities on this repo consolidated 401 → 194.</li>
<li class=""><strong>Learning from usage</strong> — repeated queries promote recurring node pairs into <code>learned</code> edges; the graph compounds in value the more you use it.</li>
<li class=""><strong>Neo4j export</strong> — <code>export --format cypher</code> writes an idempotent <code>MERGE</code> script for <code>cypher-shell</code>.</li>
<li class=""><strong>Token benchmark</strong> — every run prints a measured corpus-vs-query token comparison (110× on this repo), whether you like the number or not.</li>
<li class=""><strong>Security</strong> — esbuild advisory pinned out, Windows reserved-name guards in exports, learned-edge promotion hardened against stale node references.</li>
</ul>
<p>The unreleased <code>Next</code> docs version already covers what is landing after 0.8.0: the deterministic hypergraph, the cross-repo global graph, graph health diagnostics, and offline-first ingest (SCIP indexes, Postgres introspection, MCP configs). See the <a class="" href="https://nodesify.github.io/astria/docs/intro">docs</a> — and <a class="" href="https://nodesify.github.io/astria/docs/explanation/benchmarks">benchmarks</a> for how every number above is measured and reproduced.</p>]]></content>
        <author>
            <name>Nodesify</name>
            <uri>https://github.com/Nodesify</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
</feed>