Grafy z repozitáře
- 12
- grafů s tabulkou hodnot
- 55
- vydání na časové ose
Všechny grafy OSCILLA z repozitáře, interaktivně a s tabulkou hodnot.
Otevřít GrafyPull request, který mění střežené cesty, potřebuje záznam revize, který napsal někdo jiný než autor změny (pravidlo project.review-verdict). Každý záznam v .ai/repo/reviews uvádí verdikt a všechny nálezy se závažností P0 až P3 a stavem; otevřený nález P0 nebo P1 sloučení blokuje. Datum je okamžik, kdy byl záznam poprvé commitnut. Verdikty: 1 změny, 109 sloučit.
Záznamy revizí jsou historické: stav nálezu v nich zůstává, jak ho recenzent zapsal k hlavě pull requestu, a nikdo je dodatečně nepřepisuje. Co platí dnes, říká audit, který každý otevřený nález P0 až P2 ověřil proti main: opraveno (commit, který ho opravil), nahrazeno (proč už neplatí), nebo stále otevřené (úkol plánu, který ho teď sleduje). Třídu nálezu dává vždy audit, generátor stránky nic nepřeřazuje; platí poslední audit, který nález jmenuje.
b8bfd3b6oscilla-c3 rev-seat-2a7102358 · oscilla-ce (proceed-lane) · the open P3 findings in .ai/repo/reviews/<n>.yaml at base that audit-2026-11-10.yaml left unclassifiedZ 65 nálezů P0 až P2, které záznamy revizí dnes vedou jako otevřené:
| Nález | Třída | Důkaz auditu | Commit, úkol |
|---|---|---|---|
#164 R1-P2-4b P2 | Stále otevřené | ci.yml:52 `pull_request:` with default types (no `edited`), so a retitle starts no run; fail-first.v1.md:116-119 still states 'Nothing here catches a retitle that nobody re-runs'. The merge_group re-read would catch it, but `gh api repos/korczis/oscilla/rulesets` returns [] (queue not required); protection is contexts [gate], strict true. | úkol E064 |
#164 R2-P2-3 P2 | Stále otevřené | Reproduced on b8bfd3b6 with checkWorkflow: two curl -o downloads plus `sha256sum -c SUMS` where SUMS is itself downloaded -> no violation; `gh release download ... && ./tool`, `git clone ... && sh r/install.sh`, `npx`, `aria2c`, `docker run` -> no violation. ci-workflow-rules.mjs:268 tests DIGEST_CHECK on the whole step text. Still listed as unseen in ci-bounded.v2.md:240-243. | úkol E065 |
#164 R2-P2-5 P2 | Stále otevřené | scripts/yaml-subset.mjs parseYaml on b8bfd3b6 refuses `a: &x` ('unsupported YAML (anchor, alias, tag or indicator)') and `a: [b,\n c]` ('a flow sequence must close on its line'); ci-bounded.v2.md:252-253 still states the refusal of a legal workflow. | úkol E065 |
#164 R2-P2-7 P2 | Stále otevřené | Partly done: protection is strict true, contexts [gate] (gh api .../branches/main/protection), so a stale-branch dispatch cannot satisfy gate on an up-to-date head. Not done: no pull_request_target workflow, no ruleset (`gh api .../rulesets` -> []), the rule jobs are not required themselves; review-verdict.v2.md:182-187 still says a PR rewriting the job 'is not closed'. | úkol E064 |
#164 R2-P2-9 P2 | Stále otevřené | scripts/fail-first.mjs:283 still prints only 'FAILS WITH THE CHANGE TOO (<kind>) - not evidence' and :302-305 the generic 'make a test exercise the path ... or put fail-first: n/a'; no hint that a test needing git history (tests/unit/about.test.mjs:25-26, fails without history in CI) can never be evidence. Text unchanged since 2a5eef99 (git diff 2a5eef99 HEAD). | úkol E062 |
#164 R3-P2-1 P2 | Stále otevřené | problemsOfRuleJob (tests/unit/ci-workflows.test.mjs:565-600) reads only steps.at(-1). Mutations on b8bfd3b6: `ref: main` added to the fail-first checkout, `ref: main` on the review-verdict checkout, and `export PATH="$RUNNER_TEMP/fake:$PATH"` before the review-verdict call: ci-workflows, ci-gates-model, ci-changes, main-checks, base-rule tests all 75/75 pass in each case (survived). | úkol E064 |
#164 R3-P2-2 P2 | Stále otevřené | scripts/ci-workflow-rules.mjs:381 still keys on `'gate' in jobs`. Reproduced: a workflow `on: push` whose job `other` has `name: gate` -> no violation; the control with job id gate -> `triggers` reported. The required context `gate` is a check name, so the job-name form produces the same check. | úkol E065 |
#164 R3-P2-3 P2 | Stále otevřené | fatalLine (ci-workflow-rules.mjs:178) covers installs, downloads, digest checks and browser suites, not `npm test`. Mutation: `npm test || true` on ci.yml:88 and main-checks.yml:59 -> `node scripts/ci-workflow-rules.mjs` exit 0; only main-checks.test 'a copied step drifts' fails, because its mutation anchor no longer matches (incidental), not a non-fatal check. | úkol E065 |
#164 R3-P2-4 P2 | Stále otevřené | Reproduced with checkWorkflow on b8bfd3b6: one step with curl -o a.tgz, curl -o x.sh, `echo <64hex> a.tgz | sha256sum -c`, then `bash x.sh` -> no violation. ci-workflow-rules.mjs:252-264 catch only pipes, substitution and eval; the rule's 'never executed' (ci-bounded.v2.md) does not name a saved file run later. | úkol E065 |
#164 R3-P2-5 P2 | Stále otevřené | fail-first.v1.md:32 still says 'every other type has nothing to prove'; nothing assigns checking the title to the reviewer (the rule leaves only the waiver reason and the train table to the reviewer). No script compares the PR title with its commits' types (grep of scripts/ and .github/scripts). | úkol E062 |
#164 R3-P2-6 P2 | Stále otevřené | Partly fixed: 4e1c8530 'fix(review): guard measurement, calibration, safety and the deploy proof (V272 D5)' added src/js/calibration/* and src/js/measurement/* (review-verdict.mjs:82-83); deleting either fails review-verdict.test 'V272 D5' (killed). package.json is still unguarded and not named as left out in review-verdict.v2.md; planned R031 (v3) leaves non-src paths as is. | úkol R053 |
#164 R3-P2-7 P2 | Nahrazeno | Landing-order concern is moot: #171 merged 2026-10-07 (a1f9e5b8), #164 merged 2026-10-11 through train #174 (b4661da8, merge 00014747), both ancestors of b8bfd3b6. Protection is strict true now, so every open PR must contain main before it lands. | – |
#164 R3-P2-8 P2 | Stále otevřené | The PR body is history, but the rules index row still says it: .ai/repo/rules/project/README.md:66 '... and a branch that has not merged the main carrying the job is not judged', while a pull_request run checks out the merge with main and runs main's job. | úkol E066 |
#164 R3-P2-9 P2 | Stále otevřené | CLAUDE.md:54 (outside the majordomus region, which starts at :122) still says 'the base branch's copy of each program judges' after naming all three rules; base-rule.sh:16-18 accepts only fail-first.mjs and review-verdict.mjs, and ci-workflow-rules.mjs runs from the PR's own tree in npm test (ci-bounded.v2.md:254-258 says so). | úkol E066 |
#164 R3-P2-10 P2 | Stále otevřené | Reproduced on b8bfd3b6: `grep -q 'apt-get' README.md` (single or double quotes) -> install-wrapper + step-timeout (WORD at ci-workflow-rules.mjs:36 accepts a quote); `uses: docker://alpine:3.19` -> pinned (PINNED_ACTION :106 needs @tag or sha). Neither listed as a known false refusal in ci-bounded.v2.md. | úkol E065 |
#164 R3-P2-11 P2 | Nahrazeno | Concerns the #164 PR body's open-PR table, which is history: #164 merged 2026-10-11 (via #174, b4661da8), #169 (fb868729), #170 (aef4d7a8) and #171 (a1f9e5b8) all merged and are ancestors of main. | – |
#164 R3-P2-12 P2 | Stále otevřené | .ai/repo/reviews/README.md:16-19 says only that 'the copy that judges a pull request is the base branch's'; the content section :41-49 tells the reviewer to run `node scripts/review-verdict.mjs --content --list` locally without saying it uses the checkout's GUARDED, which differs from CI's base copy for a PR that edits the list. README last changed 2271cb3d, not on this. | úkol E066 |
#164 V-1 P2 | Nahrazeno | About where #164's round-3 follow-ups were written (PR comment vs body); the PR merged 2026-10-11 (b4661da8) and its verdict .ai/repo/reviews/164.yaml (b6c9b57e) records all twelve R3-P2 items, which this audit re-judges one by one. | – |
#164 V-2 P2 | Stále otevřené | unverified owner decision: no owner record found that settles it. review-verdict.v2.md:94 still says 'a session other than the one that built the change'; 19 of 96 verdicts name a subagent reviewer, the latest 2026-11-05 (433.yaml). Q091 part (4) (LLM decision, not the owner's) adds named seats but does not say whether a builder session's subagent counts. | úkol Q108 |
#174 V-1 P2 | Stále otevřené | Owner question unanswered. review-verdict.v2.md:94 still says only 'a session other than the one that built the change'; reviews/README.md:36-39 says the program cannot tell. No Q-record/ADR/decision in .ai/repo/project or adrs addresses subagents of one orchestrating session (grep d563bebc|e4a1ac78|agent level outside reviews: none). Practice moved: last subagent reviewer is #232. | úkol Q108 |
#179 V-1 P2 | Stále otevřené | Same unanswered question as 174 V-1 (session e4a1ac78). Rule v2 line 94 and reviews/README.md 'Who writes these' are unchanged on the point; no owner or LLM decision record found. Train is history (merged ee70a21) but the standard is still undefined for subagent reviewers. | úkol Q108 |
#179 V-2 P2 | Nahrazeno | The standard is now written down and enforced. merge-train SKILL.md:47-52: a guarded member rides only if the train gets its own reviewer verdict; a member whose own verdict is not merge rides only if the train verdict names it under members. review-verdict.mjs:35-52,203-230 enforces it (rule v2 statement). ADR 0055 was amended in bee9273c. | – |
#197 R-3 P2 | Stále otevřené | Same unanswered question as 174 V-1 / 179 V-1 (session e4a1ac78; also 210 R-4 and 198/199/208/213/214/218/225/226/230/232). Rule v2:94 is unchanged on the point and there is no decision record. Fold all of them into the one decision issue. | úkol Q108 |
#210 R-1 P2 | Opraveno | E017 added tests/unit/plan-done-evidence.test.mjs: a completed issue whose criteria name a review verdict needs verified evidence naming .ai/repo/reviews/<pr>.yaml, recorded no earlier than that file's first commit. E006 now has that evidence plus CI run 39241368944 for release-gate. Passes 7/7. Mutation: deleting E006's artifact line fails it (E006 named). | commit důkaz neuvádí commit z main |
#213 R-1 P2 | Opraveno | E016 rows (studio-automation-transforms.test.mjs:114-155, Random/Step Mod rate lane at 44.1/48k). Mutants on transport.js, each killed: moveOffset glide :1061 (8 fail), removal glide :1224 (5), moveOffset set :1058 (2), schedule->applyAutomation in rebindLanes :1106 (5), reoffsetLanes :1155 (4), removal hold :1216 (4), stop hold :1375 (5). | commit důkaz neuvádí commit z main |
#252 R1 P2 | Stále otevřené | fail-first.mjs and its test are unchanged since #252's head 6f434f03 (last commit f6001603). trainMembers (fail-first.mjs:92-112) still ends the table at a line with no leading pipe. Repro on b8bfd3b6: the body '| member | what |\n|---|---|\n| #1 | chore(x): a |\n#2 | feat(y): b |' gives only #1, so the feat member goes unjudged. review-verdict.mjs imports the same function. | úkol E061 |
#252 R2 P2 | Stále otevřené | fail-first.mjs:272-280 at b8bfd3b6: only the with-change run is retried once (runFile(withTree) again on failure); withoutRun = runFile(withoutTree, file) runs once, and any failure there counts as evidence ('fails without the change'). The code is unchanged since #252. | úkol E062 |
#252 R3 P2 | Stále otevřené | fail-first.mjs:191 still spawns node --test --test-reporter=tap <file>. On Node 22.20.0 (CI pins 22), a file 'a[1].test.mjs' gives "Could not find 'a[1].test.mjs'" with exit 1 (scratch repro), so the head run fails too and a valid fix reads 'FAILS WITH THE CHANGE TOO - not evidence'. | úkol E062 |
#252 R4 P2 | Stále otevřené | Mutation on b8bfd3b6: TRAIN_BRANCH /^train\// -> /train\// (fail-first.mjs:55). fail-first.test.mjs 21/21 pass and review-verdict.test.mjs 26/26 pass, so the mutant survives. Reverted. | úkol E063 |
#252 R5 P2 | Stále otevřené | Mutation: renamed the --head-branch flag in parseArgs (fail-first.mjs:344) so the real flag becomes an unknown argument. fail-first.test.mjs 21/21 and review-verdict.test.mjs 26/26 still pass: no test passes --head-branch. Reverted. | úkol E063 |
#252 R6 P2 | Stále otevřené | Mutation: the member check /^#\d+$/ -> /#\d+/ (fail-first.mjs:126). fail-first.test.mjs 21/21 and review-verdict.test.mjs 26/26 still pass. Reverted. | úkol E063 |
#252 R7 P2 | Stále otevřené | Mutation: removed the bracketed-tag prefix (?:\[[^\]]*\]\s*)* from TYPED (fail-first.mjs:57-58). fail-first.test.mjs 21/21 and review-verdict.test.mjs 26/26 still pass. Reverted. | úkol E063 |
#264 F6 P2 | Opraveno | derivableMs (src/js/studio/sequence-import.js:288-294) now bisects the exact preimage of round()'s +EPSILON bias (beatsPreimageEnd :270). Test v31-studio-sequence-file.test.mjs:322-324 accepts the 0.03333249999999999 beats @20 BPM save (99.997 ms). Mutant restoring beats +/-0.5e-6 fails tests 9 and 10 (16/16 pass unmutated). | commit důkaz neuvádí commit z main |
#264 F7 P2 | Opraveno | Same derivableMs fix: upper preimage end is the last double rounding to beats, so 100.001 ms / 0.033333 beats @20 BPM is refused ('would open as 99.999', test :374-375) and 100.001 / 0.1 @60 BPM too (:379). The beats+0.5e-6 mutant fails test 10. | commit důkaz neuvádí commit z main |
#277 R1 P2 | Stále otevřené | ci-changes.test.mjs covers 120000/160000/T only with synthetic records (lines 158-161); the real-git fixture (215-251) has no symlink, gitlink or type change. Mutation: added --diff-filter=ACDMR --ignore-submodules=all to changedRecords (.github/scripts/ci-changes.mjs:182). ci-changes, ci-gates-model, ci-workflows and flake-ledger tests: 77/77 pass. Reverted. | úkol E067 |
#287 R1 P2 | Opraveno | tests/browser/demo-song.cjs:447 takes clipsBefore from the model before the first riff note (step 2), and midi-records (:494) compares the clip count after the riff against it, so a recording made during the riff reads as new and the step can XPASS once V505 lands. V505 is not done, so the mark stays in EXPECTED (:108). | commit důkaz neuvádí commit z main |
#287 R2 P2 | Opraveno | keyboard-view (demo-song.cjs:767) no longer counts [data-osc^=keyboard.] markup. It holds KeyA and requires at least 200 changed key-canvas pixels, an engine node count above the baseline, and output RMS above 0.002 (:784-789). After K026 landed it became a landed() check, so a missing effect is a FAIL. | commit důkaz neuvádí commit z main |
#287 R3 P2 | Opraveno | expected() (demo-song.cjs:147-176) counts only { ok:false } or a thrown Unmet as XFAIL. Any other exception prints 'FAIL ... the expected failure broke, not its owner's gap', and an id with no EXPECTED mark is a FAIL (:150-153). untilUnmet (:135) maps only WaitTimeout to Unmet. Checked by reading the code, not by a run. | commit důkaz neuvádí commit z main |
#287 R4 P2 | Opraveno | restore-last (demo-song.cjs:884-901) finds a draft/restore/recover offer, clicks it, and requires the restored model to be the song at the unsaved 100 BPM (a WaitTimeout after the click is a FAIL, not an XFAIL). Before closing, it waits up to DRAFT_MS for a stored draft (:868-877). It flips to XPASS when V604 lands. V604 is still open. | commit důkaz neuvádí commit z main |
#287 R5 P2 | Opraveno | node-views-draw (demo-song.cjs:674-700) uses cardPaint (:358) on each of the four cards. Each must paint at least 0.5% of its pixels away from the background and repaint during PLAY (pixel fingerprints differ). A card that is not on screen is a FAIL. 'What plays' is measured as live repainting, not as content matched to the signal. | commit důkaz neuvádí commit z main |
#287 R6 P2 | Opraveno | Render WAV (step 11, demo-song.cjs:819-861) now runs before the page is closed and reopened (step 12, :879). It renders the live, edited model and checks its 100 BPM drum-hit timing. The save-reload skip path (:904-905) is followed by no render, so no wrong model can be rendered. | commit důkaz neuvádí commit z main |
#287 R7 P2 | Nahrazeno | The 900 s WebKit chain bound is gone. test:browser (package.json:28) now runs through tests/browser/lib/run-suites.cjs, with a per-suite OSC_SUITE_MS bound. CI deals the suites over per-browser legs by shard weights (demo-song 32-35 s in tests/browser/shard-weights.json), and each leg step has 70 min (ci.yml:212,261). e8b3b818 also cut demo-song's WebKit render from 52 s to 21 s. | – |
#287 R8 P2 | Opraveno | The open hat has its own open-hat-env (src/js/studio/templates/demo-song.js:55, sustain 0.25) and track. hat-env keeps sustain 0 (:53). tests/unit/demo-song.test.mjs:129 passes 10/10. Mutating open-hat-env sustain to 0 fails test 5 ('the open hat rings on') and the hash pin (test 2). Restored afterwards. | commit důkaz neuvádí commit z main |
#288 R1 P2 | Stále otevřené | src/js/charts/spectrogram-view.js:231 only re-applies freeze on info.resumed. Nothing resets or bypasses the AnalyserNode smoothing on resume: no smoothingTimeConstant write in src/js/charts or src/js/analysis, and the view's default feed is still 'analyser' (:36). Neither file has changed since 3020041e/d64cfc81. The ghost-column count was not re-measured in a browser. | úkol C064 |
#288 R2 P2 | Stále otevřené | src/js/analysis/spectrogram.js:43 still has MAX_PUSH_GAP_MS = 250, and push() (:370) resets acc to 1 on any gap over it. At frame intervals above 250 ms, every frame therefore writes exactly one column, whatever the wall time, and the 10 s timeSpanS axis is wrong. The file is unchanged since 3020041e. Checked by reading the code, not run. | úkol C064 |
#303 R-1 P1 | Opraveno | 9898b9e2 fix(audio): C011 address review R-1 to R-9 of #303 (landed in 11cc9fbc, train #367): tightenLimit clamps rel = min(v.release, max(0.005, lim/2)) and fades from end-rel (audio-engine.js:801-823); held by test e5ee79c5 C026 (landed d51f9b2d #437): c011-safety-limits 20/0 on base, and the mutant rel = v.release fails C026. | commit 9898b9e |
#303 R-2 P2 | Opraveno | play() now checks the first pass: src/js/sequencer/editor.js:789-796 (if model.loop && !passFits(first.end) -> cutAtCap, loopNotice). Unit tests c011-safety-limits.test.mjs:436 and Stop-on-cut case; mutant 'if (false && ...)' fails tests 15 and 19 (20/20 unmutated). Header comment :61-69 states the rule. | commit důkaz neuvádí commit z main |
#304 R1 P2 | Stále otevřené | Code moved to src/js/ui/measure/session.js:402-404: measureFreqIndicator still returns CALIBRATED when cal.useFrequency && cal.profile, with no coverage check; bound at src/index.html:964-967 (data-osc measure.freqIndicator). T017 (done) fixed only response-chart/rta-chart; no plan issue names the header indicator. | úkol T036 |
#307 R1 P2 | Opraveno | tests/unit/readout-states-quality-bar.test.mjs:147 asserts NONE -> AT RAIL /^Run 2/ and NOT CHECKED -> AT RAIL /^Run 2/, and that the result is kept. It passes 12/12. Both mutants were re-run on quality-bar.js:231 and each fails test 3: '!s.railSeen && clipping.value !== NONE' and '!s.railSeen && !s.peakUnchecked'. Restored afterwards. | commit důkaz neuvádí commit z main |
#320 R4 P2 | Stále otevřené | src/js/studio/transport.js:1284-1288 applyEdit resumeAt() still = max(hooks.soon(), horizon quantum), computed after runtime.apply began the crossfade (applied.at); continueVoice :729 starts there, so a stall > STUDIO_XFADE_S still leaves a gap. Code unchanged since 8ef29c6f (git log -S). No plan issue found (grep stall/xfade over .ai/repo/project/issues). | úkol H008 |
#329 R4 P2 | Stále otevřené | Reproduced on main with real normals.js + panelStore: LFO Studio edge into lpf.frequency (mixed, normals n21,n22 live) -> patchCable mg.control -> unpatch: jack 'patched', normals []. unpatch (normals.js:285-296) skips normalSteps while a foreign edge remains; ui.js:537 says 'Kabel odpojen; normál je obnoven.' unconditionally. No plan issue found. | úkol K236 |
#329 R5 P2 | Stále otevřené | Memory moved into metadata.synthAmounts (c87b9641), but presetAction (presets.js:124) is a PATCH_REPLACE that neither adds the broken edges nor updates synthAmounts. Reproduced: cable into lpf.frequency (mem lpf-eg2=2), preset 'bass' (lpf-eg2=3), unpatch -> n22 restored at depth 2. Link path now writes synthAmounts (link.js:144-147); preset path still stale. | úkol K236 |
#329 R6 P2 | Stále otevřené | src/js/synth/ui.js:790-795 window Escape handler sets pending = null and calls disarm(true) but never renderBay(); the connection list's content/hidden is set only in renderBay (ui.js:272-274), and disarm/no store change triggers no refresh when not armed. Patch buttons then do nothing (connectTo with pending null, :548-551). Code-read, not browser-run; no plan issue found. | úkol K236 |
#329 R7 P2 | Nahrazeno | visual-identity-lock v3 is status: deprecated; v4 (active) replaces its 'Narrowed in version 3 ... Nothing else is' section with 'Changed in version 4' and no longer exempts the Synth from references: v4.md:205-209 names scripts/visual-synth.mjs as the Synth panel/bay reference and 'A re-skinned view gets a new reference'. | – |
#330 F7 P2 | Nahrazeno | A landing-order note that is now moot. #330 was CLOSED unmerged (2026-11-05). #337 merged 2026-10-30 (3980cc61). ci.yml no longer has a single browser job: it has leg-1/leg-2 at 100 min (37486cc7). main-checks.yml has its own browser job (90 min), and main-checks.test.mjs passes 9/9 on b8bfd3b6. | – |
#367 F1 P2 | Opraveno | e5ee79c5 test(audio): C026 the release clamp held by a voice whose release exceeds half the limit (landed d51f9b2d #437): its fixture release 0.8 s under a limit lowered to 0.5 s has written values; the mutant rel = v.release fails C026 (reviewer run). | commit e5ee79c |
#367 F2 P2 | Stále otevřené | Knob now formats via core/frequency.js formatFrequencyCompact (src/js/ui/synth/knob.js:483), Inspector via formatFrequency (ui/studio/inspector.js:100): still differ. Probe on main, oscillator.frequency: 440.5 -> knob '440.5 Hz' vs Inspector '440.50 Hz'; 1234.5 -> '1.2345 kHz' vs '1.23 kHz'. Plan issue G020 (open) covers it. | úkol G020 |
#367 F3 P2 | Opraveno | midi/ui.js:52-55 routes notes by routeOf(workspace).plays from one table; src/js/midi/routes.js studio row plays 'studioSink' (synth/studio-sink.js plays the document's Keys via the transport). Mutant studio plays:null fails keys-routes.test.mjs 'one table...' (7/7 unmutated); studio-sink.test.mjs and midi.cjs keyboard-everywhere cover it. | commit důkaz neuvádí commit z main |
#367 F4 P2 | Stále otevřené | Playground route: midi/notes.js:113 midiToFrequency(note, s.a4). Synth/Studio route: Keys -> studio/adapters/instrument.js:21 vcoBaseHz = 440 * 2^scale, no a4 anywhere in src/js/synth or studio adapters (grep). Plan issue C023 (open, no completed_at) is this finding. | úkol C023 |
#367 F5 P2 | Opraveno | Notes are an output owner: workbench.js:145-146 outputOwnerOf({..., notes: this.notesSounding}); keyboard vizInputs override removed (no vizInputs outside core/instrument.js, static scan test). output-owner.test.mjs 17/17; mutant notes:false fails test 14. Landed via #507 (7637039e). Plan issue C024 not yet stamped done. | commit 7637039 |
#372 V1 P2 | Opraveno | runLeg (tests/browser/xy-pad.cjs:1364-1374) records SKIP_OF skips with RUN.skip(leg=key '<browser>/<origin>/<size>'), which also fixes the leg naming. The main loop counts only entries that were not skipped (:1435). An all-skipped leg prints SKIP and calls no reportLeg (:1437-1440), and other legs get reportLeg({ checks: ran.length }). Checked by reading the code, no run. | commit důkaz neuvádí commit z main |
#404 R1 P2 | Opraveno | 959c47b4 path-gated the census (needs changes; runtime != 'false'), added it to GATED_JOBS and the gate skip list, and added a rule that every browser-matrix job is path-gated. 37486cc7 then folded the census into the gated leg-1/leg-2 (ci.yml:174-175, 223-224; GATED_JOBS = leg-1, leg-2, visual). Mutation: removing leg-2's if fails ci-changes.test 'ci.yml wiring' (15/1). | commit 959c47b |
#425 R1 P1 | Nahrazeno | #425 closed unmerged; K171 (24380aa6) landed in train #444 (3a3a5a58), whose head d74d40bd passed gate and the Browser gate in chromium, firefox and webkit, which ran test:synth with xy-pad.cjs (x-dock-yields, x-dock-desktop): the condition R1 set. | – |
#539 C3-539-2 P2 | Neauditováno | Žádný audit tento nález nejmenuje. Ve verdiktu: @375:synth:overlap left PHONE_WHOLE_DEBT as paid, but the overlap returns once the insert alert is closed (U107, T17) | – |
#540 C3-540-6 P2 | Neauditováno | Žádný audit tento nález nejmenuje. Ve verdiktu: the fixed keyboard dock covers K246's insert alert at 320x568 and at 390x844 with the notices open (U108); on main since #539 | – |
| V této třídě žádný nález není. | |||
U čísla pull requestu stojí identifikátor nálezu ze záznamu revize .ai/repo/reviews/<číslo>.yaml a závažnost, jak ji určil recenzent. Důkazy jsou anglicky, jak je audit zapsal. U opraveného nálezu se odkazuje první commit, který důkaz jmenuje, je v tomto repozitáři a je předkem báze auditu (pravidlo níže); úkol plánu, když jeho soubor v tomto commitu existuje.
Nálezů P3 je 435, z nich 318 otevřených ve verdiktech. Audit spolu s doplněním audit-2026-11-10-p3.yaml je klasifikoval proti main (řádků P3 v auditech: 318): stále otevřené 207, opraveno 69, nahrazeno 42; neklasifikováno 0. Odkazy z commitů na nálezy audit zapisuje jen jako signály, ne jako třídy: named_by_a_fix_commit 91, named_by_a_plan_commit 29, named_only_by_a_review 57, named_nowhere 141, precision_of_fix_commit_signal 8/15.
Zdroj: .ai/repo/reviews/audit-*.yaml (review-audit/v1) + .ai/repo/reviews/<pr>.yaml; pravidlo: an audit naming another in extends: completes it: it adds rows for the findings that one does not name and its p3_total completes that one's P3 block, and replaces nothing; the other audits are ordered by date, then file name without .yaml (so a same-day audit-<date>-b.yaml follows audit-<date>.yaml), and the latest naming <pr>.yaml#<id> gives the class; a finding open at P0-P2 in its verdict that no audit names is unaudited; commit: a fixed finding links the first token of its evidence of 7-40 lowercase hex digits (one at least a digit) that is a commit of this repository (git cat-file --batch-check) and an ancestor of the commit its audit judged on (judged_on, else base; git merge-base --is-ancestor); else no commit.
| PR | Verdikt | P0 | P1 | P2 | P3 | Otevřeno | Uzavřeno | Zapsáno |
|---|---|---|---|---|---|---|---|---|
| #544 | sloučit | 0 | 0 | 0 | 5 | 0 | 5 | |
| #541 | sloučit | 0 | 0 | 1 | 5 | 5 | 1 | |
| #540 | sloučit | 0 | 0 | 3 | 5 | 5 | 3 | |
| #539 | sloučit | 0 | 0 | 2 | 1 | 2 | 1 | |
| #538 | sloučit | 0 | 0 | 0 | 0 | 0 | 0 | |
| #533 | sloučit | 0 | 0 | 0 | 1 | 0 | 1 | |
| #532 | sloučit | 0 | 0 | 0 | 1 | 0 | 1 | |
| #531 | sloučit | 0 | 0 | 1 | 0 | 0 | 1 | |
| #529 | sloučit | 0 | 0 | 0 | 3 | 0 | 3 | |
| #527 | sloučit | 0 | 1 | 0 | 4 | 3 | 2 | |
| #525 | sloučit | 0 | 0 | 0 | 0 | 0 | 0 | |
| #523 | sloučit | 0 | 0 | 1 | 4 | 4 | 1 | |
| #522 | sloučit | 0 | 6 | 5 | 11 | 10 | 12 | |
| #515 | sloučit | 0 | 1 | 8 | 5 | 5 | 9 | |
| #512 | sloučit | 0 | 0 | 2 | 3 | 1 | 4 | |
| #509 | sloučit | 0 | 1 | 7 | 8 | 3 | 13 | |
| #507 +2 | sloučit | 0 | 1 | 0 | 5 | 0 | 6 | |
| #504 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #490 | sloučit | 0 | 0 | 0 | 1 | 1 | 0 | |
| #486 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #480 | sloučit | 0 | 0 | 0 | 1 | 0 | 1 | |
| #471 | sloučit | 0 | 0 | 0 | 1 | 1 | 0 | |
| #463 | sloučit | 0 | 0 | 0 | 1 | 0 | 1 | |
| #460 | sloučit | 0 | 0 | 1 | 2 | 1 | 2 | |
| #451 +1 | sloučit | 0 | 0 | 0 | 9 | 2 | 7 | |
| #447 | sloučit | 0 | 0 | 1 | 3 | 3 | 1 | |
| #444 +3 | sloučit | 0 | 2 | 2 | 14 | 8 | 10 | |
| #443 | sloučit | 0 | 0 | 0 | 2 | 1 | 1 | |
| #441 | sloučit | 0 | 0 | 0 | 8 | 2 | 6 | |
| #437 | sloučit | 0 | 0 | 0 | 3 | 1 | 2 | |
| #433 | sloučit | 1 | 0 | 3 | 8 | 0 | 12 | |
| #426 | sloučit | 0 | 0 | 2 | 6 | 6 | 2 | |
| #425 | sloučit1 P1 otevřený | 0 | 1 | 3 | 6 | 6 | 4 | |
| #424 | sloučit | 0 | 0 | 1 | 4 | 1 | 4 | |
| #420 | sloučit | 0 | 0 | 2 | 8 | 8 | 2 | |
| #417 | sloučit | 0 | 0 | 3 | 9 | 0 | 12 | |
| #413 | sloučit | 0 | 0 | 0 | 4 | 3 | 1 | |
| #410 +1 | sloučit | 0 | 0 | 0 | 8 | 7 | 1 | |
| #404 | sloučit | 0 | 0 | 1 | 2 | 3 | 0 | |
| #403 | sloučit | 0 | 0 | 0 | 2 | 0 | 2 | |
| #402 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #398 | sloučit | 0 | 0 | 0 | 1 | 1 | 0 | |
| #389 | sloučit | 0 | 0 | 0 | 3 | 0 | 3 | |
| #386 | sloučit | 0 | 0 | 0 | 7 | 6 | 1 | |
| #385 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #380 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #377 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #375 | sloučit | 0 | 0 | 2 | 6 | 4 | 4 | |
| #373 | sloučit | 0 | 0 | 1 | 3 | 1 | 3 | |
| #372 | sloučit | 0 | 0 | 1 | 4 | 5 | 0 | |
| #369 | sloučit | 0 | 1 | 1 | 4 | 4 | 2 | |
| #368 | sloučit | 0 | 0 | 0 | 4 | 4 | 0 | |
| #367 | sloučit | 0 | 0 | 5 | 3 | 8 | 0 | |
| #355 | sloučit | 0 | 0 | 0 | 3 | 3 | 0 | |
| #347 | sloučit | 0 | 0 | 0 | 3 | 3 | 0 | |
| #343 | sloučit | 0 | 0 | 1 | 3 | 1 | 3 | |
| #342 | sloučit | 0 | 1 | 1 | 3 | 1 | 4 | |
| #337 | sloučit | 0 | 0 | 0 | 3 | 3 | 0 | |
| #332 | sloučit | 0 | 0 | 2 | 9 | 5 | 6 | |
| #331 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #330 | sloučit | 0 | 2 | 4 | 2 | 2 | 6 | |
| #329 | sloučit | 0 | 3 | 5 | 7 | 11 | 4 | |
| #323 | sloučit | 0 | 2 | 1 | 2 | 2 | 3 | |
| #321 | sloučit | 0 | 0 | 1 | 3 | 3 | 1 | |
| #320 | sloučit | 0 | 2 | 2 | 2 | 2 | 4 | |
| #314 | sloučit | 0 | 0 | 1 | 10 | 8 | 3 | |
| #307 | sloučit | 0 | 0 | 1 | 5 | 6 | 0 | |
| #304 | sloučit | 0 | 0 | 1 | 5 | 6 | 0 | |
| #303 | změny1 P1 otevřený | 0 | 1 | 1 | 8 | 10 | 0 | |
| #301 | sloučit | 0 | 1 | 3 | 6 | 5 | 5 | |
| #299 | sloučit | 0 | 0 | 0 | 7 | 7 | 0 | |
| #296 | sloučit | 0 | 0 | 4 | 8 | 2 | 10 | |
| #295 | sloučit | 0 | 0 | 1 | 11 | 7 | 5 | |
| #293 | sloučit | 0 | 0 | 1 | 6 | 5 | 2 | |
| #291 | sloučit | 0 | 0 | 0 | 7 | 6 | 1 | |
| #290 | sloučit | 0 | 0 | 3 | 7 | 4 | 6 | |
| #289 | sloučit | 0 | 0 | 1 | 4 | 3 | 2 | |
| #288 | sloučit | 0 | 0 | 2 | 4 | 6 | 0 | |
| #287 | sloučit | 0 | 0 | 8 | 9 | 17 | 0 | |
| #279 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #278 | sloučit | 0 | 0 | 1 | 5 | 5 | 1 | |
| #277 | sloučit | 0 | 0 | 2 | 9 | 10 | 1 | |
| #276 | sloučit | 0 | 0 | 1 | 3 | 2 | 2 | |
| #275 | sloučit | 0 | 0 | 1 | 2 | 1 | 2 | |
| #274 | sloučit | 0 | 0 | 0 | 4 | 4 | 0 | |
| #267 | sloučit | 0 | 0 | 3 | 3 | 1 | 5 | |
| #266 | sloučit | 0 | 0 | 0 | 4 | 4 | 0 | |
| #264 | sloučit | 0 | 0 | 3 | 6 | 5 | 4 | |
| #263 | sloučit | 0 | 0 | 0 | 6 | 6 | 0 | |
| #262 | sloučit | 0 | 0 | 0 | 2 | 2 | 0 | |
| #261 | sloučit | 0 | 0 | 0 | 7 | 7 | 0 | |
| #253 | sloučit | 0 | 1 | 1 | 11 | 7 | 6 | |
| #252 | sloučit | 0 | 0 | 7 | 0 | 7 | 0 | |
| #242 | sloučit | 0 | 1 | 1 | 4 | 2 | 4 | |
| #239 | sloučit | 0 | 0 | 2 | 4 | 1 | 5 | |
| #232 | sloučit | 0 | 0 | 0 | 4 | 4 | 0 | |
| #230 | sloučit | 0 | 0 | 0 | 4 | 4 | 0 | |
| #226 | sloučit | 0 | 0 | 0 | 3 | 3 | 0 | |
| #225 | sloučit | 0 | 0 | 0 | 4 | 4 | 0 | |
| #218 | sloučit | 0 | 0 | 0 | 3 | 2 | 1 | |
| #214 | sloučit | 0 | 0 | 0 | 4 | 4 | 0 | |
| #213 | sloučit | 0 | 0 | 1 | 1 | 2 | 0 | |
| #210 | sloučit | 0 | 0 | 1 | 3 | 4 | 0 | |
| #208 | sloučit | 0 | 0 | 0 | 5 | 5 | 0 | |
| #199 | sloučit | 0 | 0 | 0 | 5 | 5 | 0 | |
| #198 | sloučit | 0 | 0 | 0 | 7 | 7 | 0 | |
| #197 | sloučit | 0 | 1 | 2 | 4 | 4 | 3 | |
| #179 | sloučit | 0 | 0 | 2 | 5 | 7 | 0 | |
| #174 | sloučit | 0 | 0 | 1 | 4 | 5 | 0 | |
| #164 | sloučit | 0 | 6 | 39 | 3 | 22 | 26 |
„+N“ u čísla pull requestu: záznam vlaku, který posuzuje i N dalších pull requestů. Zdroj: .ai/repo/reviews/<pr>.yaml (review-verdict/v1); datum: git log --diff-filter=A --no-renames --format=%cI HEAD -- .ai/repo/reviews.
Všechny grafy OSCILLA z repozitáře, interaktivně a s tabulkou hodnot.
Otevřít GrafyKaždé tvrzení OSCILLA se zdrojem, kódem a testem, který ho dokazuje.
Otevřít TvrzeníCommity, úkoly plánu a pull requesty každého vydání OSCILLA.
Otevřít ZměnyZáměry a milníky plánu OSCILLA a kolik jejich úkolů je hotovo.
Otevřít RoadmapaKaždý ratchet OSCILLA s hodnotou v každém vydání a teď.
Otevřít DluhRozhodnutí o architektuře OSCILLA se stavem a datem.
Otevřít ADR