Skip to content

Detailed project statistics - #3

Merged
cursor[bot] merged 4 commits into
masterfrom
cursor/detailed-project-statistics-272c
Mar 10, 2026
Merged

Detailed project statistics#3
cursor[bot] merged 4 commits into
masterfrom
cursor/detailed-project-statistics-272c

Conversation

@IanFrelinger

Copy link
Copy Markdown
Owner

Add bootstrap and chat CLI commands to enable a Mac-first auto-setup and interactive chat demo experience.

The bootstrap command allows the agent to automatically set up its environment locally, including installing missing dependencies, which is crucial for a compelling "one executable makes itself useful" demo. The chat command provides a Claude Code-style REPL for users to interact with the system via CLI, serving as an interim UX for the generative and testing pipeline.


Open in WebOpen in Cursor

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
@cursor

cursorBot commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

cursoragentand others added 3 commits March 10, 2026 03:53
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
@cursor
cursorBot merged commit dcc7714 into masterMar 10, 2026
IanFrelinger pushed a commit that referenced this pull request Aug 17, 2026
… with control + proof
There was no single first-run page: README offered three lanes plus a native
escape hatch, GettingStarted a fourth ordering, DocsIndex sixteen "start here"
items with RELEASE.md at #3, and none of them reached the trust loop. The
first command in README (`dotnet build ... --no-restore`) fails on a fresh
clone with NETSDK1004. Four product stories coexisted (local-first AI
runtime / "autopilot panel", audited copilot + Cloud SKU, autonomous
capability extension, certified artifacts).
docs/TesterQuickstart.md is one lane with verified paths only: clone ->
`dotnet build Nexo.Kernel.sln` -> `nexo doctor` -> run Nexo.API on loopback
with the mock provider -> `POST /api/copilot/task` and read the record it
leaves in `/api/copilot/tasks/{id}` and `/api/trust/dashboard` (curl and
Invoke-RestMethod) -> `scripts/run-cert-gate.sh` or the 16-test gate-teeth
slice -> what to test and how to report -> known limitations. Every route,
DTO, default and file on the page was checked against the code and run.
README's top is rewritten under decision D1 (assumed, owner to confirm):
Nexo = auditable AI workflows on infrastructure you control; the trust loop
is how "auditable" is true, not a separate product; the autonomy loop is
experimental and hold-mode; self-hosted only. "Start here" points at the
quickstart, the lanes are trimmed, the "autopilot panel" lead is retired
(observe/adapt/improve stays as a subsection), a "Trust loop / certification
(experimental)" section links the spec, the evidence ledger, the governed
pipeline, the sample objective and the first-flight spike with the
hold-mode caveat, and the Where-to-start table no longer recommends
`--no-restore` as the first command. Regions touched by the in-flight
docs/repo-map-refresh branch (Scope in 30 seconds, Subsystem map, Project
layout) are left byte-identical.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
IanFrelinger pushed a commit that referenced this pull request Aug 17, 2026
…rograms historical; document spikes/
docs/DocsIndex.md: Start Here #1 is the tester quickstart, README #2,
GettingStarted #3; IntegratorGuide and consumer-template/CONSUMING.md are
listed for the first time; RELEASE.md, the setup-matrix scripts and the
bootstrap helpers move out of the numbered list into an "escape hatches"
paragraph (RELEASE stays under Operator); a new "Trust loop / certification
(experimental, hold-mode)" group makes docs/trust-loop/*, the evidence
ledger, governed-pipeline, SELF-EXTEND-AUDIT, the sample objective and
spikes/ reachable; "Planning & Roadmap" becomes "Planning history
(historical as of 2026-08-16)" because it described a finished program.
Stale status docs are date-stamped rather than deleted:
- ProtocolIntegration-MCP-A2A.md said the Nexo.API wiring was "planned"; it
landed in #269/#270 (Program.cs registers all four adapters and maps
/api/mcp and /api/a2a/{agentId}; IngressCatalog rows McpServer/A2AAgents).
- ci-pre-existing-failures.md said the Full Platform Readiness Gate was RED
as of 06-21; it went green with #317-#320/#335. Kept because
docs/planning/* still cite it.
- GapAnalysis.md and NorthStarGapAnalysis.md predate the trust loop; both get
a historical banner naming their still-open rows and pointing at the
ledger, ProjectTiers and CHANGELOG.
GettingStarted.md #5 contradicted DocsIndex on "installer" scripts (the
scripts/install/* helpers exist but bootstrap the container lane); it now
says so and points first-run readers at the quickstart. The pointer to a
README section "First Successful Pipeline Run" (which does not exist) now
names the sections that do. IntegratorGuide.md recommended `dotnet build
Nexo.sln` (the docs guard forbids it in README); it now builds
Nexo.Kernel.sln and the CLI project, with hello-brick as the smallest test
example, and the compatibility matrix names the solutions that actually
apply.
spikes/README.md: the 27 tracked files under spikes/ were cited as PASS
evidence by the ledger but undocumented. It says what each spike is, every
flag of the flight runner, which ledger rows cite each spike, and that none
of it is a supported entry point.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
IanFrelinger added a commit that referenced this pull request Sep 1, 2026
Lab finding #462 (white-box), adversarially reviewed clean. The correctness
gate proves EXACT witnessed behavior, but its value comparer coerced across
kinds: Convert.ToInt64 rounded a double into an int (2.4 == 2, 1.5 == 2 by
banker's rounding) and the string fallback equated an int with its decimal
string or a bool. A brick whose real output was wrong-by-<0.5 or wrong-typed
passed the proof the gate exists to make. Both comparers (WitnessValueComparer
and the duplicated WitnessRunner.ValuesEqual) now match type-first: if either
side is integral (resp. boolean), BOTH must be, else unequal; strings and
floats keep the invariant-string compare. Same-type values still match
(int 42 == long 42, "hi" == "hi", 3.14 == 3.14). New unit tests pin every
closed hole and every preserved case.
Also from #459:
- Mutant ids are disambiguated (#2/#3 on a repeated {kind}-{line}) so the
SIGNED survivor/killed ledger is unambiguous — two mutations on one line no
longer share an id.
- Certification record Status XML docs corrected from "ADMIT/REJECT" to the
PASS/FAIL the gate actually writes (3 model files), so a consumer matching
the documented labels stops misclassifying every record.
Gates: cert-gate 402/402 (the comparer change broke no existing witness);
certification suites 35/35. Adversarial review (Opus): clean.
[coordinated-integration]
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
IanFrelinger added a commit that referenced this pull request Sep 5, 2026
…he arithmetic
The mutation leg's whole job is proving the witness would notice if the brick's
logic were wrong. It could not do that for arithmetic: a brick computing
Math.Max(0, baseDamage - armor) and one computing Math.Max(0, baseDamage + armor)
-- contradictory programs -- BOTH certified "ADMIT escape_rate=0 mutants_killed=5"
against the same witness, because the catalog produced three string-literal
mutants, one int-literal mutant and one statement removal, and never touched the
operator. Reproduced before the change: both bricks ADMIT with exactly those five
mutants killed (ArithmeticMutantTeethTests failed for that reason pre-fix).
The catalog now carries the operator classes a real mutation tester has:
swap-arithmetic-op + <-> -, * <-> /, % -> *
swap-arithmetic-assign += <-> -=, *= <-> /=, %= -> *=
shift-relational-boundary < <-> <=, > <-> >= (the off-by-one class flip-binary-op cannot express)
swap-unary-op -x <-> +x, ++x <-> --x, x++ <-> x--
remove-logical-not !x -> x
Every one of them consults the semantic model before rewriting a token. The
engine scores a non-compiling mutant as KILLED, so a swap that ignored types
("a" + "b" -> "a" - "b", enum + 1 -> enum - 1, !(bool?) dropped inside an if)
would inflate the kill count of a signed certificate with mutants that were
dead on arrival -- exactly the vacuity the leg exists to prevent. The catalog
binds the candidate against the SAME reference set and the same injected usings
the certification compile uses (hoisted to a sibling tree as global usings so
candidate line numbers and ToSource() are untouched); the engine now passes its
compilation references through. An operand whose type cannot be resolved yields
NO operator mutant rather than a guess. Whole-expression constants, constant-zero
divisors and steps of loop-control variables (for/while/do conditions) are
skipped: the first two are compile errors after a swap, the last is a mutant that
never returns and would hang the in-process harness instead of being judged.
OperatorMutationCatalogTests compiles every operator mutant of five fixtures,
including an operator zoo covering ints, doubles, decimals, int?, char, enum,
string, DateTime/TimeSpan, bool and bool?.
Ids stay {kind}-{line} with the existing #2/#3 disambiguation, and the five
pre-existing ids for the reproducing brick are pinned verbatim so records
signed before this change stay reproducible. Strategy names name every kind
(a test now checks the engine's list against what the catalog emits -- it caught
a missed edit during this work).
Consequence handled here, not handed off: the boundary operator exposed that
every "strong" probe-brick witness in the suite was toothless at the zero-error
boundary -- errorCount > 0 mutated to >= 0 survived because no witness ever fed
a log without an ERROR line. Those tests went red; that is the gate doing its
job. The witnesses were STRENGTHENED (MutationProbeWitnesses.ZeroErrorCase, one
shared case across ten sites), not the mutant weakened. All suites green.
Timing on the simple bricks (dotnet test durations, same machine): the probe
brick's strong-witness certification 3 s before and 3 s after (+1 mutant); the
line-substring-counter engine run 2-3 s before and 2 s after (+2 mutants); the
reproducing brick 5 -> 6 mutants. The binding-only compilation adds tens of
milliseconds per certification; the leg is bounded by the per-kind cap of 4,
so worst case grows from 28 to 48 mutants on a brick that has every shape.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@IanFrelinger@cursoragent