Skip to content

Releases: cyberuni/cyberplace

cyberplace@0.2.3

Choose a tag to compare

@unional unional released this 01 Sep 23:54
ff4ab51

Patch Changes

  • ca8f9ab: Ship the cyberplace/tavern entry point. exports["./tavern"] resolves to
    src/tavern/plugins.ts, but files listed only bin, dist and governances, so the
    file was never in the tarball and the subpath 404'd for every consumer outside this
    workspace. In-repo callers resolved through the workspace link, which is why it went
    unnoticed. src/tavern is now packed.

    Also releases the tavern source resolution landed in the plugin extraction: a
    git-subdir marketplace entry rendered as npm:undefined because the resolver
    understood only string and npm sources. It now resolves those to the owning repo's
    directory URL.

cyberfleet@0.0.6

Choose a tag to compare

@unional unional released this 01 Sep 23:54
ff4ab51

Patch Changes

  • ca8f9ab: Depend on the published cyberlegion@^0.3.1 instead of the workspace copy. cyberlegion
    was extracted to its own repository, so the workspace:* link no longer exists and the
    runtime dependency now resolves from the registry.

cyberplace@0.2.2

Choose a tag to compare

@unional unional released this 14 Aug 07:17
d660b2e

Patch Changes

  • e75f4a0: Fix stale npx version pins in the readmes.

    The documented pin-to-an-exact-version examples cited versions that were never
    published — cyberplace@0.7.0 and cyberfleet@0.1.0 return E404 — so anyone
    copying them got a hard failure. cyberlegion@0.1.0 resolved but was two minors
    behind. Each now cites the current published version.

cyberlegion@0.3.1

Choose a tag to compare

@unional unional released this 14 Aug 07:16
d660b2e

Patch Changes

  • e75f4a0: Fix stale npx version pins in the readmes.

    The documented pin-to-an-exact-version examples cited versions that were never
    published — cyberplace@0.7.0 and cyberfleet@0.1.0 return E404 — so anyone
    copying them got a hard failure. cyberlegion@0.1.0 resolved but was two minors
    behind. Each now cites the current published version.

cyberfleet@0.0.5

Choose a tag to compare

@unional unional released this 14 Aug 07:17
d660b2e

Patch Changes

  • e75f4a0: Fix stale npx version pins in the readmes.

    The documented pin-to-an-exact-version examples cited versions that were never
    published — cyberplace@0.7.0 and cyberfleet@0.1.0 return E404 — so anyone
    copying them got a hard failure. cyberlegion@0.1.0 resolved but was two minors
    behind. Each now cites the current published version.

  • Updated dependencies [e75f4a0]

    • cyberlegion@0.3.1

cyber-sdd@0.2.1

Choose a tag to compare

@unional unional released this 14 Aug 07:17
d660b2e

Patch Changes

  • 405b8de: Spec discovery no longer descends into a nested checkout.

    The filesystem walk was guarded by a name blocklist — node_modules, .git, dist, .turbo,
    .next, coverage. A name list can say "this is called X"; it cannot say "this is where the tree
    stops". A nested git checkout is a full copy of the repository inside the repository, and nothing
    stopped the walk from descending into one, so every spec in the corpus was discovered once per
    nested checkout.

    The guard was also one level off from where it was needed: .git was already in the blocklist, so
    the walk skipped the metadata directory while descending straight into the checkout that
    directory marks
    .

    Agent harnesses that isolate work in a git worktree check the repo out inside itself, which is how
    this surfaced: seven such worktrees turned a 10-spec corpus into 38 discovered spec files. The loud
    symptom was check-project-specs failing with "packages/x is claimed by 8 specs — a project has
    exactly one spec", breaking pnpm verify. The quiet symptom was worse: check-suite,
    concept-index, check-scenario-overlap, check-spec-structure, and the formation Warden all
    reported green over a corpus nearly 4x duplicated. A guard passing over a corpus nobody has is worse
    than one that fails.

    Discovery now skips any directory that is itself a checkout — one carrying its own .git, whether a
    directory (a clone) or a file holding a gitdir: pointer (a worktree or a submodule). Both
    forms matter: guarding only on the directory form would miss the worktree case that caused this.

    The rule is structural rather than a name, so it also covers submodules, vendored clones, and
    whatever the next harness invents, without naming any of them. A directory that merely resembles a
    checkout by name but carries no .git of its own is still part of this tree and is still scanned.

    All three walk sites are guarded: the fixed-convention scan, the ** any-depth expansion behind
    extra anchors, and the <project> glob frontier.

cyber-sdd@0.2.0

Choose a tag to compare

@unional unional released this 13 Aug 08:33
8995a29

Minor Changes

  • 3b8b39a: The ## Use Cases section now carries actor, goal, and extensions — not just entry points.

    A use case was defined as an entry point: one row per way the capability is invoked, given as
    trigger / inputs / outcome and named to its implementation surface. That definition had stood since
    the section was introduced. It never drifted; it was narrow from the origin.

    The requirements-engineering definition is actor + goal + main success path + extensions — the
    alternate, error and divergence paths. Extensions is where "what can go wrong for this actor" and
    "which of these inputs may be combined" live, and a trigger / inputs / outcome row has nowhere to
    put any of it. The practical cost: a spec could satisfy the bar completely and still carry no
    analysis of why each element of a designed surface exists, what breaks it, or which combinations
    are valid. A judge would then confirm the section existed and each row mapped to a scenario, and
    pass it — coverage of what is present cannot detect what should not be present.

    What changes for spec authors:

    • Use cases are enumerated by actor, never by entry point. Walking the interface returns only
      the use cases that interface already implies, and is structurally blind to the one nobody built.
      List the actors first — including whoever is affected by the outcome without invoking it — then
      their goals, then map goals to entry points. Both mismatches are findings: a goal no entry point
      serves, and an entry point no listed goal reaches. The enumeration is checkable in both
      directions. On a backfill, source yields only the served use cases by construction, and an
      inferred set is never reported as complete.
    • A use case carries four parts — actor / goal (one line each, not a persona), the entry point
      (trigger / inputs / outcome, unchanged), and its extensions. An extension is any path from
      the trigger that does not reach the success outcome
      , stated with its cause and outcome. The
      recurring kinds (refusal, error, boundary, partial result, contended or absent input) are a
      prompt to search with, not a closed set.
    • extensions: none — <why> is written explicitly when a use case has no divergence, so the
      claim is contestable rather than silently absent.
    • Every element of the public surface traces to a use case that needs it — each flag, option,
      parameter, prop, or event names the use case requiring it and the elements it may not be combined
      with. An element no use case needs is an orphan: cut it or name the use case. This is the same
      orphan-detection discipline as ## Scenario map, one level up.
    • Degenerate surfaces stay cheap. A capability with one entry point and no optional elements
      records the trace in a line, never a table — the obligation is that nothing on the surface is
      unaccounted for, not that a table exists.

    The three spec-gate actor bars each take a duty in their own domain rather than a shared copy:
    Oracle rules cut-or-justify on unbought surface and treats an actor or goal that restates the
    mechanism as an unanswered Why; Builder requires every stated extension to be a
    path in the control-flow graph, so the graph supplies the scenario rather than the prose, and judges
    extensions: none as a claim; Architect requires the graph to reach every stated extension,
    since an extension with no edge is a dangling branch read from the prose side. Oracle
    additionally grades the actor enumeration in both directions.

    The CFG remains the single source scenarios derive from. Extensions are a discovery
    instrument
    , not a parallel specification: a graph drawn from an implementation reproduces what the
    code already does and can never say a branch is missing, whereas asking what can go wrong for this
    actor finds it. So an extension earns its scenario by being a path in the graph — never by being
    drawn from the stated list, which would make the suite 1:1 with that list by construction and
    unable to surface a hole. A use case is therefore not 1:1 with a scenario.

    Existing specs are not swept — the restored shape applies to new and revised nodes, so no
    in-flight change inherits a bar its node has not adopted. Backfilling the existing corpus one node
    at a time is tracked separately.

cyberplace@0.2.1

Choose a tag to compare

@unional unional released this 10 Aug 04:46
475b38f

Patch Changes

  • 09ae959: Direct universal-plugin governance requests to the standalone universal-plugin package.

cyberlegion@0.3.0

Choose a tag to compare

@unional unional released this 10 Aug 04:46
475b38f

Minor Changes

  • 82b3c24: BREAKING — the spawn wake now carries the brief instruction, and the SessionStart hook no longer
    injects a brief.

    unit spawn's first-turn doorbell used to be content-free ("Your brief is loaded in context — read it and begin work.") because the peer's brief was injected into its context by the peer's own
    mail hook SessionStart branch. That made brief pickup depend on a hook firing in the child — in the
    child's harness, with the hub's hook correctly installed — none of which the spawning side can
    observe. When the chain broke, the peer was woken and told to read a brief that was not there.

    The doorbell is now the instruction itself, naming the brief's file path: read your brief at
    <path>, then begin work
    . The brief is still written to its file and still never typed into the
    pane, so the wake stays one bounded line however large the brief is.

    What changes for consumers:

    • spawnAndWake is the composed operation to reach for — it spawns the peer AND delivers its first
      turn, deriving the doorbell's brief path from the record it just wrote. spawn alone still opens a
      peer that sits idle, brief unread.
    • mail hook never emits a ## Your brief section, on the first call or any later one.
    • The spawning agent status is retired — unit spawn registers a peer active outright, since
      nothing flips it any more. A record migrated from an older hub may still carry spawning; reads
      preserve it verbatim and never coerce or normalize it. (unit register still asserts active, as
      it always has — that is an explicit re-registration, not a read normalizing a value.)
    • --no-wake changed meaning without changing its flag: previously no turn, brief auto-loaded; now
      no turn and brief unread on disk. A caller driving the first turn itself must convey the path.

    Supersedes ADR-0027; see ADR-0032.

    Note for readers of the 0.2.0 entry: it describes the first-turn doorbell as waking a peer
    whose "brief is injected into context by its own SessionStart hook". That was accurate when it
    shipped and is what this release retires — the hook injects no brief, and the wake names the file.

cyberfleet@0.0.4

Choose a tag to compare

@unional unional released this 10 Aug 04:46
475b38f

Patch Changes

  • Updated dependencies [82b3c24]
    • cyberlegion@0.3.0