Skip to content

v0.2.3

Latest

Choose a tag to compare

@axiomcode-bot axiomcode-bot released this 05 Nov 06:16
· 5 commits to dev since this release
29f7ecf

Addition

  • #2004 Hono, the first web framework the graph models: TypeScript and JavaScript apps built on Hono get their request handling as rows and edges
    • a route table: every verb, on, all and route() registration with its full path, sub-apps included
    • the middleware chain in front of each route, in order
    • context keys: each c.set linked to the c.get / c.var reads it feeds
    • typed-client (hc) and test-request links to the route they reach, and validator schemas linked to the handler that reads them
    • call chains from the handler into the services it uses; what the rules cannot decide is a row naming the reason
    • call chains complete end to end 0.777 → 0.942 (dev) and 0.609 → 0.665 (held out); request chains 0.837 → 0.946 and 0.548 → 0.613; chain-edge precision unchanged, no refuted edge added hono

Improvements

  • #2014 hono: Hono imported by its JSR name (@hono/hono/<sub>, as an import map key or after jsr:) is Hono, and a route builder's { route, handler } registered through app.openapi is a route. On a Deno app keyed by the JSR name, middleware 0 → 8 and endpoints guarded by authentication 1 → 20; on an app registering through a builder, routes 1 → 13 hono
  • #2010 typescript: a destructured parameter typed by its context (const poll: (ctx: Ctx) => R = async ({ utils }) => utils.http(..), or an arrow in an object literal passed to a typed parameter) takes its member's type. On a 1.9k-file Deno repo, resolved calls 7,410 → 8,923 and hook calls of the HTTP helper 0 / 198 → 194 / 198, no edge lost typescript
  • #2011 typescript: a name destructured from a value typed by an object type literal (function g({ port }: { port: Port })) takes its member's type, so calls on it resolve like the member access beside it typescript
  • #2002 typescript: five callee shapes the compiler names now resolve: construction through a shape, a function-typed const read off a namespace, a member chain through inline types, ThisType, and a bound method (p.tag.bind(p)). Held-out projects: +10 exact, −1 wrong, −12 missed of 19,514 sites; no site got worse; solve time within noise typescript
  • typescript: arithmetic results (-, *, **, bitwise, unary) are numbers or bigints, a ?? b and a || b keep the operand's type, and a const declared in a namespace has its declared type, so calls on all three resolve and overloads taking their result pick correctly typescript
  • #1910 csharp: a relative qualified name (Models.Report) is read from the namespaces enclosing the site, innermost first, so a file declaring several Models namespaces no longer binds it to all of them csharp

Bugs

  • #2007 mcp: a call the CLI could not carry out came back as an ordinary answer; it is now a tool error (isError: true) with the same words, so the client sees the failure and the model still reads the correction mcp
  • link: two links from one call site to two different arrow functions or lambdas collapsed into one. Links are now keyed on the target's declaration, and --remove takes a file:line and refuses a name that covers more than one declaration link

Build and release

  • TypeScript suite: case 99's expected gaps were closed by #2011 and are now part of the golden output ci
  • #2013, #2016 merged the 0.2.3 branch into dev and cut the 0.2.3 release; every package and plugin manifest is at 0.2.3 (the parser keeps its own version) release

Contributors

@swapnilpaliwal-sd @JaredHLZhang @G6KlayWang @suyashpaliwal26 @Whua689