Skip to content

Fifth Prerelease - Visual Graph, AI Tasks, Multilanguage

Choose a tag to compare

@finnmglas finnmglas released this 13 Aug 22:45
· 67 commits to main since this release

We can draw pretty graphs now and detect it for more languages - and send agents to do tasks from the task panel!

✨ Fable 5 Summary

Ten languages in one graph, the tabs in the terminal, agent runs watched live

Graphs in ten languages

  • TypeScript, Rust, Python, Java/Kotlin/Scala, Go, Swift, C#, Ruby, PHP and C/C++ in one import graph, each readable alone
  • every language resolved its own way: super:: names the folder in rust, a dotted path walks packages in python and the jvm, an angled include is the toolchain's unless the repo holds it
  • strings and comments scrubbed per language first, so a quoted path is not an import and a commented one is nothing
  • the execution tab follows calls across all of them, and a mixed repo is one picture

The tabs, in the terminal

  • nine named views: tasks, architecture, modules, execution, deps, stack, sprawl, history, knowledge
  • desprawl sprawl names repeated literals, copied blocks and files that are mostly comment
  • every view takes --json with exact numbers, so CI reads the same thing the tab shows
  • desprawl knowledge writes the repo as things and links, at module, file or function grain

Agent runs, watched from the panel

  • a run streams into the panel as it happens: what it did, what failed, what it cost
  • every agent binary on PATH is its own entry with its own config, so two accounts never mix
  • closing the tab leaves a running agent alone, and desprawl stays up until it finishes
  • fix buttons on tasks hand the finding straight to the agent, repo in hand

Fixes worth naming (an adversarial sweep: 35 files, +301/−270)

  • bot-author detection lost every commit after the first to a stray newline, so AI-signed counts read near zero
  • a tsconfig path without a star matched by prefix: "react" quietly captured react-dom
  • go read return "hello" as an import, and python 'strings' leaked their contents as code
  • [dependencies.serde] never reached the table, and requests[socks]>=2 broke on its own brackets
  • advisories for uninstalled packages were fetched, then dropped on the way to the row
  • a missing pnpm killed the whole server, and desprawl view printed the terminal report instead of opening one
  • one person committing seven days of a week read as seven devs

https://www.npmjs.com/package/desprawl