Releases: danieljoppi/AntHocNet
Release list
v1.5.0
AntHocNet v1.5.0. See CHANGELOG.md.
Install bundle (anthocnet-1.5.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md),
including release-pinned tags anthocnet-ns{2,3}:<sim-version>-v1.5.0.
Verify your download. The SHA-256 digest is published twice — in
this body and as the anthocnet-1.5.0.zip.sha256 asset:
23aaad4bf58dae1ceb7729b2c378d97a26e42231ceca4b48c3eaff2185727fa1 anthocnet-1.5.0.zip
sha256sum -c anthocnet-1.5.0.zip.sha256 # both files in the same directory
What's Changed
- docs(roadmap): mark v1.4.0 shipped — tag cut 2026-08-09 by @danieljoppi in #397
- feat(bench): measure re-injection identity and fate directly — the #386 counter by @danieljoppi in #398
- feat(bench): promote the #386 soundness identities and correct the reorder gloss by @danieljoppi in #399
- docs(bench): dupRx is app-layer duplicate traffic, not FlowMonitor inflation by @danieljoppi in #400
- feat(protocol): cap per-packet mac re-injections behind MaxReinjectPerPacket by @danieljoppi in #401
- docs(bench): plan the v1.5.0 re-baseline campaign before spending it by @danieljoppi in #403
- ci(bench): rescue the per-merge benchmark-results artifact, and schedule #229 into phase 0 by @danieljoppi in #406
- fix(bench): cap-aware drop-cause attribution — capped-terminal drops of delivered packets are straddle, not loss by @danieljoppi in #407
- ci(bench): clear rescue-artifacts' stale run_ids default — the API substitutes defaults for empty inputs by @danieljoppi in #408
- fix(bench): count the baselines' pending-queue sheds — dsdv drops a fifth of dense traffic in silence by @danieljoppi in #409
- docs(bench): record phase-0 completion in the v1.5.0 campaign plan by @danieljoppi in #410
- feat(routing): flip ReconvHoldCap default 1 s -> 200 ms by @danieljoppi in #411
- feat(bench): vendor gpsr baseline port for the oracle-phase comparison (#296) by @danieljoppi in #412
- docs(bench): re-publish the grid at the 200 ms re-baseline — v1.5.0 phase 1 complete (#371) by @danieljoppi in #413
- feat(bench): vendor aomdv baseline port for the oracle-phase comparison (#296) — builds, does not yet route by @danieljoppi in #414
- docs(bench): publish the v1.5.0 phase-2 re-injection results (#386) by @danieljoppi in #417
- fix(bench): stop the #230 diversity gate crying wolf, and frame the baseline set (#296) by @danieljoppi in #418
- feat(bench): add the oracle shortest-path control arm (#415, #296 item 1) by @danieljoppi in #419
- fix(bench): dsdv cannot run on multi-ISL grids (#420), and two arm allowlists silently dropped the new arms (#421) by @danieljoppi in #422
- docs(bench): publish the v1.5.0 phase-3 oracle control — the campaign is complete by @danieljoppi in #424
- docs(bench): the gpsr arm delivers zero — correct every record that calls it working (#425) by @danieljoppi in #426
- docs(bench): write the gpsr threat-to-validity text the verdict requires (#425, #296) by @danieljoppi in #427
- docs: v1.5.0 exit criteria are met, and record what the campaign left behind by @danieljoppi in #428
Full Changelog: v1.4.0...v1.5.0
v1.4.0
AntHocNet v1.4.0. See CHANGELOG.md.
Install bundle (anthocnet-1.4.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md),
including release-pinned tags anthocnet-ns{2,3}:<sim-version>-v1.4.0.
Verify your download. The SHA-256 digest is published twice — in
this body and as the anthocnet-1.4.0.zip.sha256 asset:
540b7bbc828d7ce4c84f00b0512df443e8106507f191a48c94ec8bd7e8f46a21 anthocnet-1.4.0.zip
sha256sum -c anthocnet-1.4.0.zip.sha256 # both files in the same directory
What's Changed
- docs: record the v1.3.0 zenodo doi by @danieljoppi in #325
- feat(bench): paired per-seed verdicts in sweep_summary --vs by @danieljoppi in #326
- feat(core): adopt the thesis's pheromone exponents, betaAnts = betaData = 20 by @danieljoppi in #327
- ci: pin all workflow actions to commit shas and add dependabot by @danieljoppi in #338
- docs: support route, question form, honest bug form, ns-2 notice, codeowners by @danieljoppi in #340
- ci: cancel superseded pr runs, lint the whole skills dir, gate relative links by @danieljoppi in #346
- docs: readme hero — pitch, results figure, architecture diagram by @danieljoppi in #347
- ci: publish the core coverage number by @danieljoppi in #348
- build: devcontainer on the ghcr ns-3 image for one-click codespaces by @danieljoppi in #349
- docs: publish docs/ as a mkdocs-material site on github pages by @danieljoppi in #350
- docs: link the docs site and the codespaces quick start by @danieljoppi in #351
- docs: record the #180 verdict against the proactive rate and emission gate by @danieljoppi in #353
- chore: add spdx and copyright headers across the source tree by @danieljoppi in #354
- fix(bench): pin rng streams per seed so results do not depend on split structure by @danieljoppi in #355
- ci: openssf scorecard, release checksums, and the trust-signal assessment by @danieljoppi in #356
- build(deps): bump actions/checkout from 4.4.0 to 7.0.1 by @dependabot[bot] in #342
- build(deps): bump softprops/action-gh-release from 2.6.2 to 3.0.2 by @dependabot[bot] in #343
- build(deps): bump actions/setup-python from 5.6.0 to 7.0.0 by @dependabot[bot] in #345
- build(deps): bump docker/login-action from 3.7.0 to 4.6.0 by @dependabot[bot] in #344
- chore(deps): bump docker/build-push-action from 6.19.2 to 7.3.0 by @dependabot[bot] in #341
- ci: stop Dependabot bumping the ns-2 image base (#339) by @danieljoppi in #357
- chore(deps-dev): bump ruff from 0.16.0 to 0.16.1 by @dependabot[bot] in #358
- chore(deps): bump amannn/action-semantic-pull-request from 5.5.3 to 6.1.1 by @dependabot[bot] in #359
- chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 by @dependabot[bot] in #360
- fix(bench): pin manet-baselines rng streams and extend the seed-independence gate by @danieljoppi in #361
- feat(bench): emit hopsCommon/hopsSurplus for the #308 phase-2 decomposition by @danieljoppi in #363
- feat(bench): measure channel occupancy per run for the #308 per-hop hypothesis by @danieljoppi in #364
- feat(bench): emit ##HOLD## so pending-queue hold time is reachable, not just measured by @danieljoppi in #367
- docs: mark v1.3.0 shipped and record the provenance pin the corpus already had by @danieljoppi in #368
- feat(bench): emit ##CONFIG## so a run records the configuration it ran with by @danieljoppi in #370
- docs(roadmap): record v1.4.0 progress — the delay-tail verdict is delivered by @danieljoppi in #372
- feat(bench): add a mobility-model knob — steady-state RWP and Gauss-Markov by @danieljoppi in #373
- feat(bench): add a Nakagami fading channel — the other half of the v1.4.0 grid by @danieljoppi in #374
- fix(bench): gauss-markov aborted on NormalPitch — a constant where ns-3 demands a normal by @danieljoppi in #375
- docs(bench): state the provenance of every results page — and the two answers differ by @danieljoppi in #376
- docs(roadmap): the v1.4.0 grid reports — delivery ranking stable, tail ranking is not by @danieljoppi in #378
- docs(bench): publish the v1.4.0 mobility × channel grid, and surface the v1.3.0 DOI by @danieljoppi in #379
- feat(bench): regression floors for the grid arms — and why they are not anchors by @danieljoppi in #380
- feat(bench): add a TCP arm — saturating BulkSend, with ##GOODPUT## as its headline by @danieljoppi in #381
- fix(bench): reorder columns must be absent under TCP, not zero by @danieljoppi in #382
- feat(bench): record the commit every published number was measured at by @danieljoppi in #383
- feat(bench): emit the raw drop-identity counters to test #377's mechanism by @danieljoppi in #384
- fix(bench): the drop-identity overlap must use macDrops, not macTerminal by @danieljoppi in #385
- ci(bench): cap the paper-benchmark step below the job ceiling by @danieljoppi in #387
- fix(bench): carve genuine losses out of the drop residual, not raw MAC drops by @danieljoppi in #388
- docs(roadmap): mark the tcp arm measured and enumerate the v1.4.0 closeout by @danieljoppi in #392
- feat(bench): widen the data-packet predicate to accept tcp on the data port by @danieljoppi in #393
- docs(bench): publish the tcp arm — goodput, paired tests, and the ranking inversion by @danieljoppi in #394
- docs(roadmap): the tcp arm is published and its instrumentation gap is closed by @danieljoppi in #395
- docs: record the v1.4.0 closeout decisions — hold-cap operating point, pins accepted, gate cleared by @danieljoppi in #396
New Contributors
- @dependabot[bot] made their first contribution in #342
Full Changelog: v1.3.0...v1.4.0
v1.3.0
AntHocNet v1.3.0. See CHANGELOG.md.
Install bundle (anthocnet-1.3.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md),
including release-pinned tags anthocnet-ns{2,3}:<sim-version>-v1.3.0.
What's Changed
- docs: regime comparison tables — networks side by side, mechanism live/inert per regime by @danieljoppi in #299
- docs: software-layer diagrams — stack, ant mechanisms × config switches, per-regime support by @danieljoppi in #303
- docs: ant-type reference, ADR-0019/0020, and orientation updates by @danieljoppi in #304
- docs: twelve diagrams — class, sequence, flow, layout and accounting views of the protocol, metrics and process by @danieljoppi in #305
- fix(docs): unrenderable mermaid block + CI gate, Zenodo DOI, NS-2 deprecation, and the roadmap plan by @danieljoppi in #306
- test(core): exercise GenerationTracker's eviction (#166), and add the matched-delivery delay99 that #308 needs by @danieljoppi in #310
- fix(bench): re-emit ##MATCH## in the compact result block by @danieljoppi in #311
- feat(bench): common-set delay99 — the assumption-free version of #308 by @danieljoppi in #312
- feat(bench): add 95% CIs, paired tests and a column-mapping gate to the result parsers by @danieljoppi in #313
- docs(bench): statistical policy — runs floor, ci methods, warm-up, rng — plus a runs-floor gate by @danieljoppi in #314
- feat(bench): render 95% cis — chart error bars and ± table columns by @danieljoppi in #315
- feat(bench): emit 95% ci columns from --export-sweeps by @danieljoppi in #316
- docs(bench): publish 20-seed pause and area sweeps with 95% cis by @danieljoppi in #317
- ci(bench): per-merge taxonomy at the 10-run publication floor by @danieljoppi in #320
- feat(bench): persist per-run rows in a sibling campaign csv by @danieljoppi in #321
- feat(bench): seed-splitting — firstrun offset threaded end-to-end, exact pooling by @danieljoppi in #322
- docs(bench): publish the 20-seed scale sweep — v1.3.0's sweep set is complete by @danieljoppi in #323
- docs: correct the ns-2 support claim, and consolidate ns-2 into one document by @danieljoppi in #324
Full Changelog: v1.2.0...v1.3.0
v1.2.0
AntHocNet v1.2.0. See CHANGELOG.md.
Install bundle (anthocnet-1.2.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md),
including release-pinned tags anthocnet-ns{2,3}:<sim-version>-v1.2.0.
What's Changed
- docs: record the per-version Zenodo DOIs, which nothing tracked by @danieljoppi in #191
- feat(bench): measure radio energy for all four protocols by @danieljoppi in #219
- docs(context): stop asserting issue state in prose — every "open" issue it named was closed by @danieljoppi in #220
- feat(bench): measure packet reordering, the documented cost of multipath by @danieljoppi in #221
- feat(bench): break down packet drops by cause, and fix a silent queue eviction found doing it by @danieljoppi in #222
- feat(bench): measure path diversity, path length and flow fairness by @danieljoppi in #223
- feat(ns3): route next hops per interface and add the isl-grid scenario by @danieljoppi in #224
- docs(bench): stop quoting generated numbers in the caveat — it has now rotted four times by @danieljoppi in #225
- docs: survey aco routing prior art on leo constellations by @danieljoppi in #227
- test(ns3): assert isl-grid builds the topology it claims by @danieljoppi in #228
- docs: check the leo survey's section 2 against the source and withdraw a claim by @danieljoppi in #231
- docs: record what the ducatelle thesis answered, and one estimator mismatch it exposed by @danieljoppi in #232
- docs: adr-0015 — one anthocnet build, satellite substrate in the image by @danieljoppi in #236
- test(bench): satellite validation anchors on the isl topology by @danieljoppi in #238
- docs: what protocols actually run on satellites, and what that does to our baselines by @danieljoppi in #239
- docs: why satellite is not manet — diagrams and the differences that bite by @danieljoppi in #240
- feat(core): per-ant-type gates and directed reactive discovery by @danieljoppi in #243
- fix(benchmarks): catch the metric defects the campaigns exposed, and the gate starvation that hid them by @danieljoppi in #242
- docs(adr): record the directed-reactive decision (ADR-0016) and its open hazard by @danieljoppi in #246
- feat(bench): add the thesis's eq 5.1 delay jitter alongside the FlowMonitor column by @danieljoppi in #247
- fix(bench): carry jitter_eq51_ms through the campaign CSV by @danieljoppi in #249
- feat(core): land the proactive emission gate, default OFF, with its experiment by @danieljoppi in #252
- fix(skills): validate ##BENCH## cells' diagnostic lines, not just the table by @danieljoppi in #253
- fix(core): restore proactiveInterval to 10 s — #252 leaked the 2 s rate it claimed not to ship by @danieljoppi in #255
- feat(bench): split the benchmark surface into MANET and satellite views by @danieljoppi in #257
- fix(ns2): add missing ns-default.tcl entries for four tcl-bound parameters by @danieljoppi in #261
- test(core): pin every Config default; add cross-tree parity check by @danieljoppi in #264
- feat(skills): satellite results pipeline — validate, parse and commit isl-grid output by @danieljoppi in #265
- feat(ns3): fast ISL failure detection via interface-down + failcell detect/reconverge split by @danieljoppi in #266
- fix(bench): keep OOM forensics — print and upload time -v + stderr on a failed benchmark run by @danieljoppi in #267
- fix(bench): stream ##RSS## samples from the paper run — forensics that survive runner death by @danieljoppi in #268
- fix(bench): cap sim address space at 13 GiB so an OOM dies gracefully, not with the runner by @danieljoppi in #269
- fix(bench): let --energyJ=0 disable the energy model — the #256 OOM is its cancelled switchToOff events by @danieljoppi in #270
- fix(bench): leak-free energy accounting — integrate the PHY State trace, drop BasicEnergySource + WifiRadioEnergyModel by @danieljoppi in #271
- feat(bench): adopt the dedicated diversity cell — floor-relative gate at the churn-free window by @danieljoppi in #273
- docs: proactiveInterval provenance moves from unknown to measured — the #248 sweep verdict by @danieljoppi in #274
- feat(core): virtual pheromone ages on the regular table's time-proportional clock (#262) by @danieljoppi in #275
- feat(core): the ILinkState congestion queries name the next hop — the stamp moves to where the interface is known (#206) by @danieljoppi in #276
- feat(ns3): per-interface transmit-queue congestion reader for the p2p/ISL regime + ADR-0017 (#206) by @danieljoppi in #277
- test(core): uniformity probe experiment — v/r on the #262 clock, the #180 gate's empirical basis by @danieljoppi in #278
- feat(bench): the asymmetric-congestion corridor cell on the ISL torus — #216 cell 1 by @danieljoppi in #280
- fix(bench): the corridor background transmits at constant duty — the OnOff default off-phase zeroed the congestion signal every other second by @danieljoppi in #282
- fix(core): receptions refresh the 1-hop pheromone at the metric's unloaded 1-hop value — not the legacy constant 1.0 (#279) by @danieljoppi in #283
- feat(core): the proactive emission gate compares per-link — the #180 re-derivation, ADR-0018 by @danieljoppi in #284
- docs: open-source front door + accuracy audit — fix count/default drift, add docs map, ADR index, CI reproducibility by @danieljoppi in #285
- docs: add the PR template — verification and record sections mirror the repo's merge discipline by @danieljoppi in #286
- docs: metrics.md energy section catches up with the #271 model — trace integration, not BasicEnergySource by @danieljoppi in #287
- feat(bench): corridor-cell pheromone sampler — the #216 mechanism trace for arms that fail to shift by @danieljoppi in #288
Full Changelog: v1.1.0...v1.2.0
v1.1.0
AntHocNet v1.1.0. See CHANGELOG.md.
Install bundle (anthocnet-1.1.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md),
including release-pinned tags anthocnet-ns{2,3}:<sim-version>-v1.1.0.
What's Changed
- docs: record the two-step release / post-release Zenodo DOI procedure by @danieljoppi in #106
- chore(release): exclude .github and .claude from the source archives by @danieljoppi in #108
- docs: add the JOSS software-paper draft (paper/) by @danieljoppi in #113
- feat(bench): add a --propagation override to run-scenarios.py by @danieljoppi in #114
- docs: add author ORCID by @danieljoppi in #115
- fix: correct the Zenodo DOI (concept DOI, README badge + CITATION.cff) by @danieljoppi in #116
- docs(paper): note JOSS submission is deferred, and why by @danieljoppi in #117
- ci(scenario-matrix): raise job timeout, upload partial results on failure by @danieljoppi in #118
- fix(bench): flush the CSV after every point, not just at script exit by @danieljoppi in #119
- feat(bench): add --point for single-point sweep dispatch by @danieljoppi in #120
- ci: add manual artifact-rescue workflow for campaign CSVs by @danieljoppi in #127
- chore(lint): fix ruff 0.16.0 findings in ns3/tools and pin ruff by @danieljoppi in #136
- ci(bench): determinism gate — identical seeds must produce identical results (#129) by @danieljoppi in #135
- feat(core): pheromone-table size gauge (regular/virtual) in counters + --diag (#133) by @danieljoppi in #141
- feat(bench): emit per-run ##RUN## rows and paired A/B verdicts (#128) by @danieljoppi in #137
- feat(bench): byte-normalized routing load nrl_bytes (#132) by @danieljoppi in #140
- feat(bench): emit ##PERF## wall-clock + peak-RSS lines per sim run (#131) by @danieljoppi in #139
- ci(adapter): add ASan/LSan ns-3 job + valgrind NS-2 smoke, non-blocking (#130) by @danieljoppi in #138
- ci(bench): correct the 6h-ceiling comment and add a step-level timeout to scenario-matrix (#125) by @danieljoppi in #156
- feat(infra): publish an optimized-profile ns-3 image (ns3:<ver>-opt) (#123) by @danieljoppi in #157
- fix(infra): split the Docker Hub mirror into non-fatal steps so a bad token can't skip GHCR publishes (#158) by @danieljoppi in #159
- chore(infra): park the Docker Hub mirror — GHCR is the only published registry (#158) by @danieljoppi in #160
- feat(skills): campaign-loop tooling, scenario validation (#134), and ADR-0014 by @danieljoppi in #161
- feat(core): add an ILinkMetric registry mapping metric names to instances (#143) by @danieljoppi in #163
- test(core): add a discrete-event testbench harness for multi-node core tests (#154) by @danieljoppi in #164
- ci(core): measure and report core test coverage on every PR (#162) by @danieljoppi in #165
- fix(core): adopt T_hop = 3 ms from the 2007 thesis, replacing the provisional 50 ms (#88) by @danieljoppi in #167
- fix(core): stop bounding reactive floods — a broadcast budget is a hop limit (#169) by @danieljoppi in #170
- docs(bench): split the benchmark page into per-scenario and per-sweep pages by @danieljoppi in #168
- docs: add a protocol configuration and calibration guide by @danieljoppi in #171
- feat(skill): compare a sweep across two code generations with a baseline control by @danieljoppi in #172
- docs(bench): correct the results caveats — they claimed the numbers were older than they are by @danieljoppi in #175
- docs(context): point the "are the defaults right?" question at the new provenance table by @danieljoppi in #176
- fix(core): bound the reactive flood per (node, generation), not per ant path by @danieljoppi in #174
- docs(config): record that the thesis supersedes [1] on antAcceptanceFactor by @danieljoppi in #178
- chore: ignore .claude/worktrees/, the agent isolation checkouts by @danieljoppi in #183
- docs(config): record the thesis audit outcome — §3.2 drops from 11 unsourced defaults to 4 by @danieljoppi in #184
- fix(bench): correct the thesis scenario preset from the source, and let scenario-matrix pass extraArgs by @danieljoppi in #187
- docs(bench): the results caveat contradicted the table directly above it by @danieljoppi in #189
- feat(core): adopt the thesis's two-factor acceptance band as the reactive-setup default by @danieljoppi in #190
Full Changelog: v1.0.0...v1.1.0
v1.0.0
AntHocNet v1.0.0. See CHANGELOG.md.
Install bundle (anthocnet-1.0.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md),
including release-pinned tags anthocnet-ns{2,3}:<sim-version>-v1.0.0.
What's Changed
- docs: Update DOI badge in README.md by @danieljoppi in #102
- feat(ns3)!: per-reason pending-queue hold cap, default ReconvHoldCap=1.0s (#21, #103) by @danieljoppi in #104
- chore(release): prepare v1.0.0 — enable major bumps + paper-fidelity table by @danieljoppi in #105
Full Changelog: v0.5.0...v1.0.0
v0.5.0
AntHocNet v0.5.0. See CHANGELOG.md.
Install bundle (anthocnet-0.5.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md),
including release-pinned tags anthocnet-ns{2,3}:<sim-version>-v0.5.0.
What's Changed
- feat(ns3): expose T_hop as the HopTime attribute (#88) by @danieljoppi in #92
- feat(ns3): attribute pending-queue hold time by reason (#21) by @danieljoppi in #93
- fix(ns3): drive re-discovery for held data with a reactive-retry timer (#21) by @danieljoppi in #94
- feat(core): enforce the maxPathLength ant hop cap with a drop (#26, item 6.2) by @danieljoppi in #95
- feat(core)!: multipath reactive setup (1.5× acceptance filter) with linkfail churn bound, default on (#96) by @danieljoppi in #97
- docs: publications digests — PPSN 2004 paper [1] digested, thesis placeholder by @danieljoppi in #98
- feat(core): fill hello advert slots active-first, then by best pheromone (#26 item 6.5) by @danieljoppi in #99
- feat(core)!: adopt the paper's routing exponents betaData=2 / betaAnts=1 (#70) by @danieljoppi in #100
- fix(ns3): release held packets on backward-ant traversal and retry-timer route hits (#21) by @danieljoppi in #101
Full Changelog: v0.4.0...v0.5.0
v0.4.0
AntHocNet v0.4.0. See CHANGELOG.md.
Install bundle (anthocnet-0.4.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md),
including release-pinned tags anthocnet-ns{2,3}:<sim-version>-v0.4.0.
What's Changed
- chore(release): stamp CITATION.cff date-released automatically by @danieljoppi in #78
- feat(release): release-pinned + :latest image tags, mirrored to Docker Hub (#77) by @danieljoppi in #79
- docs: remove docs/improvements specs (backlog now in GitHub issues) by @danieljoppi in #80
- ci: cap benchmark artifact retention at 7 days by @danieljoppi in #81
- chore(backlog): add priority-label convention, refresh stale backlog pointers (#82) by @danieljoppi in #83
- fix(bench): pin the paper's 2 Mbit/s radio — ns-3 default rate control halves single-hop PDR (#51) by @danieljoppi in #84
- fix(core): bound the LinkFail origin storm + honest convergence metric (#20, #23) by @danieljoppi in #85
- fix(ns3): cut the delay tail via a measured 3 s pending-queue hold (#21) by @danieljoppi in #86
- feat: measured A2 MAC metric (ns-3 + ns-2) + blocking benchmark anchors by @danieljoppi in #87
- feat: paper-parity QoS metrics, across-run dispersion, and the provisional thesis preset by @danieljoppi in #90
Full Changelog: v0.3.0...v0.4.0
v0.3.0
AntHocNet v0.3.0. See CHANGELOG.md.
Install bundle (anthocnet-0.3.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md).
What's Changed
- feat(bench): #24 propagation/range/area knobs, stock-baseline control, and PDR diagnostics by @danieljoppi in #50
- docs(bench): point validation anchors at #51 single-hop loss root cause by @danieljoppi in #52
- feat(core): bound proactive broadcasts and add repair wait/discard timer by @danieljoppi in #53
- feat(ns3): re-inject MAC-failed data packets and expose detector-D tuning by @danieljoppi in #54
- feat(core): congestion-aware per-hop metric from MAC queue occupancy by @danieljoppi in #67
- feat(bench): gateway-hotspot scenario (--sink) to give the A2 metric a verdict by @danieljoppi in #72
- feat(bench): instrumentation for A2 analysis — skills + --qdiag queue diagnostic by @danieljoppi in #74
- fix(ns3): read AC_BE_NQOS so A2 has a queue signal — re-land --qdiag + CLAUDE.md by @danieljoppi in #75
- chore: fix bench_parse verdict + delay99, correct A2 docs (validated), install caveman by @danieljoppi in #76
Full Changelog: v0.2.0...v0.3.0
v0.2.0
AntHocNet v0.2.0. See CHANGELOG.md.
Install bundle (anthocnet-0.2.0.zip) — the source to
drop onto your own simulator tree:
make install-ns3 NS3DIR=… or make install-ns2 NS2DIR=….
Pre-built simulator images are on GHCR (see docker/README.md).
What's Changed
- docs: add Zenodo DOI to CITATION.cff and README by @danieljoppi in #42
- feat(ns3): wire MAC transmit-failure repair hook (detector D) by @danieljoppi in #43
- fix(core): debounce detector D to stop the link-failure storm (#19) by @danieljoppi in #44
- docs: add ADR-0013 issue-tracking policy + detector-D handoff (#19) by @danieljoppi in #48
Full Changelog: v0.1.1...v0.2.0