Skip to content

v0.1.13

Choose a tag to compare

@Phantivia Phantivia released this 12 Oct 20:07
e21a524

Extension contract versions are unchanged: world 5, provider 5, bot 6.

Breaking

  • Core.cognitionInFlight() and Core.mainSessionSpec() are removed; they had no callers. A Persona reads
    ctx.running, and Core.activeSpec() returns the main session's spec (#217).
  • SessionTracker no longer swallows exceptions thrown by its observers. charges that a World passes to
    reportUsage and that cannot be copied now throw back to the World (#217).

Core

  • The instance lock records the executable path. When the PID in an existing lock is alive but now belongs to a
    different executable (tasklist on Windows, /proc/<pid>/exe on Linux, ps -o comm= on macOS), the lock is
    treated as stale and taken over, so a PID reused after a force-kill no longer blocks every later start. Locks
    written by older versions skip this check. A refused start throws InstanceLockedError with the PID and the
    lock file (#220).
  • Writes rely on the startup instance lock alone: the event store no longer compares file sizes before each
    append, and the lock is no longer rechecked every 60 seconds. Stores no longer create their directory before
    each write; the data and run directories are created once at startup. usage-log still recreates its
    directory for queued writes (#217).

Extensions

  • When the registry answers a keywords: search with an empty list (npmmirror does), the market searches the
    keyword as plain text and keeps only packages tagged with it. /api/extensions/search returns the registry it
    used, and the empty-market text names it and says to set registry= in .npmrc at the installation location
    and restart (#221).

Development

  • TypeScript noUnusedLocals is on; unused imports, variables and private fields fail typecheck. 252 existing
    ones are removed, with no change to the modules loaded at runtime (#218).