Repository navigation
v0.12.1-alpha #9
nicotem
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
v0.12.1-alpha: the in-QualCoder acceptance checks, run and recorded
Pre-release, documentation only. No code, no tool behaviour and no dependency changed from 0.12.0-alpha; only the version, the citation file and the version canary move. Upgrade with
pip install --upgrade qualcoder-mcpif you want the corrected documentation, or stay on 0.12.0-alpha, which behaves identically. Full details: [CHANGELOG](https://github.com/nicotem/qualcoder_mcp/blob/main/CHANGELOG.md).v0.12.0-alpha shipped with the six in-QualCoder acceptance checks for
pseudonymise_sourcerecorded as not run. They have now been run, and this release records what they found.What was checked, and how
The six checks are the ones only QualCoder itself can make: that the highlights land on the pseudonyms, that the reports print the refreshed quotes, that the case links still cover what they should, that edit mode and its undo behave after a rewrite, and that QualCoder 4.0's AI search index re-indexes the changed text.
They were run headlessly, not by driving a window: QualCoder's own widget code under
QT_QPA_PLATFORM=offscreen, with the result read back from the objects QualCoder itself populates (the character ranges and formats of the text document, the report dialog's results, the case file manager's underline ranges, the coding, annotation and case rows after edit mode, andai_data/search.sqlite). That reads exact character offsets rather than pixels, which is stronger evidence than a screenshot of a highlight.Result: all six on master 9bddf17, five of six on 3.8.2, and no failure anywhere is attributable to this server. On master the tool passed all six. On 3.8.2 check 6 does not apply, and two of the remaining five record a failure, both of them the upstream defect described below.
Thomasinand that a hidden coder's rows appear only once that coder is made visible.Thomasinsurvives.What the control measures, stated honestly
Every check was also run against the untouched original project. Roughly half of each step's assertions are bound to the rewritten project and fail there, which is what makes them discriminating; the rest are project invariants that hold either way. The per-step counts are in the acceptance report rather than summarised as one number, because a score of 39 out of 39 should not be read as meaning every assertion discriminates.
One sub-step could not be run headlessly and is recorded as such: pressing undo inside edit mode cannot be exercised, because QualCoder repopulates the editor's undo stack with formatting commands on every undo, in both builds.
Known limitation, upstream and not in this server
QualCoder 3.8.2 deletes whichever coding an edit leaves touching the new end of a file, whenever edit mode is left after any change to the text, and the undo cannot restore it.
ed_update_codingsdeletes any row whose new end is>= len(text), evaluated against the text after the edit. That is wider than "a coding at the end of the file", and it makes an everyday operation dangerous: trimming the tail of a transcript destroys whichever coding is left nearest the cut, even one that was nowhere near the end before. Measured in the acceptance run: deleting the last 193 characters of a 614-character file destroyed a coding at 400 to 421, which had sat 193 characters clear of the end. Master kept it.It affects
code_textonly, in any file; annotations and case links are unaffected, and leaving edit mode without changing anything is harmless. This is upstream 3.8.2 behaviour, present whether or not a project has ever been pseudonymised: the same loss occurs on a project this server never touched, which is how the acceptance control attributes it. The QualCoder 4.0 line has fixed it, clamping such a coding instead of deleting it, with the comment that a coding ending at the file length is valid.If you use edit mode on QualCoder 3.8.2, this is worth knowing regardless of this server.
Quality gates
The acceptance harness was itself reviewed adversarially, which found and fixed two defects in it before these results were accepted: one assertion whose condition was a literal and so could never fail, and a control claim that overstated what it measured. The release wording was then reviewed again, which corrected the two statements above: the earlier draft understated the 3.8.2 defect and overstated what was run. Both QualCoder source trees were verified byte-identical to genuine upstream at tag 3.8.2 and commit 9bddf17 before any attribution was made.
Suite at the release commit: 3035 passed, 3 skipped, 0 failed, on Python 3.13.5 and 3.11.13; six-platform CI green. Support and bug reports: GitHub Issues only. This remains experimental research software; back up your projects (the server also does, before every write).
This discussion was created from the release v0.12.1-alpha.
All reactions