Repository navigation
Cargento 0.28.0: Sessions first, Intent and drift
Cargento 0.28.0: Sessions first, Intent and drift
The first screen sets your goal or a permitted prompt beside current activity and brings recorded departures forward.
Cargento 0.28.0 puts sessions first and brings a substantially expanded Intent and drift workflow to the session page. Open the session you are watching, compare its recorded work with your intent, and prepare a correction when you choose to steer it back. This is the initial release of the Intent and drift milestone.
- Keep your intent beside the work. The dashboard opens on Sessions, separates active work from recent history, and puts your goal or a permitted prompt beside current activity. Recorded departures come forward; Projects stays one click away, and direct session links reopen the same page. The session-first changes ship in #387 and #389. On the session page, a redesigned Intent and drift panel holds your goal and up to six outcome lines beside numbered activity, with resizable editors, clearer Save/Undo controls and secondary detail behind disclosures (#408, #400, #409, #476).
- Read each outcome against recorded evidence. Analyze drift shows a result for each line with cited activity, an overall level and visible staleness and coverage limits. Consent, eligibility and the resulting level now have explicit states; unsupported completion claims do not raise the level by themselves, and failed checks share the same rules across the result and correction. The analysis and stopped-turn path ship #433 and #401, with later fixes in #476, #490, #491 and #498. Reading requires the disclosed consent and spends the selected CLI capacity.
- Prepare a correction you can edit and copy. Steer back builds a correction from saved intent; Update intent lets you review a later direction and save it into your intent. These ship in #428. Cargento never writes the correction into the session.
- See a local estimate after a Claude Code turn. The optional live monitor reads recorded checks and file paths without a model call. The live monitor (#429) is off by default; this estimate does not judge the meaning of your intent.
Update Cargento through your harness plugin or extension update command and reload an older open dashboard page. The install instructions cover each harness. Python 3.11+, the ten supported harnesses and hook/MCP configuration remain supported. Claude readings request claude-sonnet-5-5 by default. Model admission uses Claude Sonnet 5 as the baseline and accepts documented explicit newer Sonnet and qualifying Opus model IDs. An unavailable selection fails without retrying another model; the requested ID does not prove the remote served snapshot.
Credential masking now covers the supported inline formatting before clipping or converting command tags. Command title and direction rendering preserve captured framing and keep masked arguments whole; earlier source extraction can still limit what is recovered. See the published-text masking scope.
API consumers: annotation_output and annotation_output_why have been replaced by annotation_line_1 through annotation_line_6 with their source fields. Preserve your annotation store before downgrading: the next save in an older build can drop checklist lines and, if the store exceeds that build's read bound, all saved session annotations. Read the annotation-store downgrade limits.
The milestone remains open. A model analysis is an account of recorded evidence, not verification that work was completed. Claude accuracy qualification and the full live and cold usability studies have not passed; this release claims no measured detector accuracy improvement. See the promise map and its limits. Experimental study tools remain outside this release.
The withdrawn 0.27.0 release is not being restored or reused.
What's Changed
- feat(web): ship the v3 palette, boundary split and control fill over v0.27.0 by @gcko in #366
- fix(web): four defects found by using the v3 board by @gcko in #368
- docs(burndown): record what the UI/UX burndown measured, and dedup the module map by @gcko in #367
- feat(web,sessions): scale in rem, and one directory as one project by @gcko in #369
- test(web): resolve the sentence floor on elements the emitters render by @gcko in #370
- fix(web): fold the Now scope note into its lede, and name what the composer does by @gcko in #371
- docs: narrow the label/caption claim, and take the 980px measurement by @gcko in #372
- feat(web): say when a read is stale, and settle two dead-path defects by @gcko in #373
- feat(web): raise the sub-floor sentences, and collapse three control recipes by @gcko in #374
- test: widen two timing budgets that were measuring machine speed by @gcko in #375
- test(web): bind four design-doc claims, and raise the prose a rule never reached by @gcko in #376
- feat(scripts): regenerate the frontend byte pins instead of re-deriving them by @gcko in #377
- fix(web): evaluate pseudo-classes in the resolver, and settle three control rulings by @gcko in #378
- feat(web): raise the copy and raise controls to the tier the primitive promises by @gcko in #379
- docs(burndown): point the roadmap burndown at the current roadmap by @gcko in #380
- fix(web,claude): count only real sessions, and stop quiet rows looking live by @gcko in #381
- ci: run the suites in parallel, and cut the waiting out of the slowest tests by @gcko in #382
- docs(rulings): record DEC-20, DEC-21 and DEC-22 for the drift milestone by @gcko in #383
- docs(burndown): burn down a whole milestone in grouped, stacked pull requests by @gcko in #384
- fix(unasked): the off switch refuses the unasked lane by @gcko in #385
- feat(web): lead session detail with drift and re-entry by @gcko in #386
- feat(web): open on Sessions with direct session links by @gcko in #387
- feat(web): pair session goals with recorded drift by @gcko in #389
- feat(reading): remember permission and bound requested checks by @gcko in #390
- feat(reading): adopt a prompt as the drift baseline by @gcko in #392
- feat(reading): build a gated Claude Code reading producer by @gcko in #393
- fix(web): say only what a discard can know and keep an ended check on screen by @gcko in #394
- docs(captures): record the Claude transcript shapes DEC-23 reads by @gcko in #395
- docs(reading): write the DEC-23, DEC-24 and DEC-26 rulings by @gcko in #396
- feat(reading): show a Claude Code session's checks and written files by @gcko in #397
- feat(reading): judge a Claude Code session's expected outcome against its checks by @gcko in #398
- feat(reading): write the expected outcome as a checklist, each line read on its own by @gcko in #400
- feat(reading): analyze a Claude Code session waiting at its prompt by @gcko in #401
- feat(reading): run a pressed drift analysis as a supervised background job by @gcko in #403
- feat(reading): define the four drift levels and a case tool to validate them by @gcko in #404
- feat(reading): score the Claude Code producer against fresh format 5 cases by @gcko in #405
- feat(reading): cancel a running drift analysis by @gcko in #407
- feat(web): put the Intent and drift panel beside the session's activity by @gcko in #408
- feat(web): number the session's activity and flag what an analysis cites by @gcko in #409
- fix(reading): read a check line with one quote-aware parser by @gcko in #410
- fix(scripts): keep the scripts suite out of the developer's real Cargento home by @gcko in #411
- feat(reading): add a later direction as an outcome line, and let Keep settle by @gcko in #412
- fix(reading): make the count equal the charge and bound a reading's output by @gcko in #413
- fix(reading): read a check's folder, writes and result time, and cite nothing before your words by @gcko in #414
- fix(tests): steady three flaky tests and let a reservation wait out a write queue by @gcko in #415
- feat(reading): qualify the Claude producer before scoring by @gcko in #416
- fix(reading): read Pi validation under DEC-23 and Antigravity's typed directions by @gcko in #417
- fix(annotations): lock the store across dashboards and keep every opt-out on respawn by @gcko in #418
- feat(web): arrive with your goal drafted, and answer a later direction before the press by @gcko in #419
- fix(spacedock): re-read a file still inside its timestamp tick, and steady two tests by @gcko in #420
- feat(web): refuse stale presses, show every direction Keep settles, and announce an analysis once by @gcko in #421
- fix(abstention): name the packet, refuse a mismatched one, and refuse to score off the freeze by @gcko in #422
- chore(levels): commit the drift-level marks digest before any reading by @gcko in #424
- fix(lifecycle): stop on a SIGTERM that lands before the serve loop by @gcko in #425
- chore(levels): record the live-level result by @gcko in #426
- feat(levels): replay drift-level readings from the frozen cases, and show what a reading can move by @gcko in #427
- docs(abstention): record the Claude Code qualification run, which failed by @gcko in #430
- feat(reading): recognise a copied correction coming back unedited as Cargento's words by @gcko in #423
- feat(web): Steer back with a correction to copy, and Update intent instead by @gcko in #428
- chore(levels): validate the analysis level on three new cases by @gcko in #431
- feat(web): a live drift estimate after every turn, in the panel and the header by @gcko in #429
- fix(lifecycle): exit 0 when a SIGTERM lands while the producer thread starts by @gcko in #432
- feat(web): show an analysis result line by line, with its level and where the work went by @gcko in #433
- feat(reading): count delegated checks and writes without mistaking unread work for change by @gcko in #434
- docs(sync): align drift promises and limits with shipped behavior by @gcko in #435
- fix(web): keep saved intent analysis above the desktop fold by @gcko in #436
- fix(reading): state evidence limits in reader instructions by @gcko in #437
- fix(reading): check output after group writers stop by @gcko in #438
- fix(reading): keep check evidence attributed and placed by @gcko in #439
- fix(web): preserve correction text and native editing by @gcko in #440
- fix(intent): keep check evidence private across executed shell forms by @gcko in #441
- fix(reading): bound delegated check evidence by @gcko in #442
- fix(reading): count written files in the saved analysis window by @gcko in #443
- fix(reading): keep focused checks and bound gh api parsing by @gcko in #444
- Fix delegated live drift replay and large-session updates by @gcko in #445
- fix(qualification): bind Claude scoring to frozen evidence and private bytes by @gcko in #446
- docs(reading): settle check coverage admission by @gcko in #447
- feat(abstention): permit a reviewed second qualification packet by @gcko in #448
- docs(abstention): record failed Claude continuation score by @gcko in #449
- fix(reading): ask for evidence that covers each requested clause by @gcko in #450
- docs(evidence): add intent and drift teammate study prompt by @gcko in #451
- docs(evidence): separate exploratory and cold drift studies by @gcko in #452
- docs(evidence): remove obsolete VoiceOver requirement by @gcko in #453
- Fix goal-confirm focus and High drift fold by @gcko in #454
- fix(reading): give a model reading its own 180-second timeout by @gcko in #455
- fix(web): show a saved intent at once, and the six-line notice once by @gcko in #456
- ci(canary): repin Antigravity's reviewed CLI installer by @gcko in #457
- test: widen four flaky timing checks without losing what they catch by @gcko in #458
- docs(evidence): record exploratory sidecar run sidecar-055892 by @kentwelcome in #459
- docs(evidence): route a study sidecar a stop it can read by @gcko in #460
- fix(reading): read a Claude Code slash command as a reader direction by @gcko in #461
- fix(intent): draft no goal from a session that opened with a control by @gcko in #462
- feat(abstention): vouch a rolled-past Claude turn stop from its transcript by @gcko in #463
- feat(abstention): chain a second continuation and freeze a case at its capture by @gcko in #464
- feat(reading): read each reader message whole, redacted and bounded by @gcko in #467
- feat(abstention): open the marking phase of the second continuation grant by @gcko in #465
- feat(abstention): seal the second continuation grant by @gcko in #468
- docs(evidence): record exploratory sidecar run sidecar-0764de by @iamcxa in #466
- docs(evidence): end the resumed session so the sidecar keeps a stop it can read by @gcko in #470
- docs(abstention): record the second continuation's failed Claude score by @gcko in #469
- feat(reading): withdraw a consistent on a line about what the agent tells you by @gcko in #471
- feat(abstention): chain continuation grants to any generation and raise the cap to 28 by @gcko in #472
- feat(abstention): open the marking phase of the third continuation grant by @gcko in #473
- feat(abstention): seal the third continuation grant by @gcko in #474
- docs(abstention): record the third continuation's failed Claude score by @gcko in #475
- feat(reading): make the Intent and drift panel usable by @gcko in #476
- test(fixtures): add four annotated pushback sessions by @gcko in #477
- feat(drift): replay the pushback sessions through Cargento's drift detectors by @gcko in #478
- feat(reading): the agent's own words are evidence for claims and drift by @gcko in #479
- docs(drift): the first drift replay run, and P2 names what the agent said by @gcko in #480
- feat(drift): adopted and current intent arms, claims scoring, and a 440-call cap by @gcko in #481
- feat(reading): read an adopted goal whole, and check what the agent claims by @gcko in #482
- docs(drift): the second drift replay run, and what the critic left standing by @gcko in #483
- feat(reading): list passes ahead of unrecorded runs, and check claims against what was left out by @gcko in #484
- docs(drift): the third run, claims marked true or false and a narrowed re-read by @gcko in #485
- fix(reading): find adopted goals beyond the transcript tail by @gcko in #486
- fix(replay): stop consecutive unusable reads before further spend by @gcko in #487
- feat(drift): retain delegated launches until recorded completion by @gcko in #488
- fix(replay): measure the displayed Analyze result by @gcko in #489
- fix(drift): align levels, correction offers and cited checks by @gcko in #490
- fix(reading): show measured coverage beside the answer by @gcko in #491
- feat(intent): carry listed directions and show quiet delegated work by @gcko in #492
- Recover listed window messages and disclose agent reply crops by @gcko in #493
- feat(reading): distinguish unfinished work at non-final stops by @gcko in #494
- Measure model-free gap studies with frozen blind marks by @gcko in #495
- Record failed window guard and stop further Analyze spend by @gcko in #496
- docs(fixtures): add three reviewed pushback sessions by @kentwelcome in #497
- Preserve drift intent edits and admit newer Claude reading models by @gcko in #498
- test(fixtures): add four annotated pushback sessions (Conductor collection) by @iamcxa in #499
- fix(security): mask inline credentials and preserve command arguments by @gcko in #500
- test(runtime): allow runner variability in live replay timing by @gcko in #501
New Contributors
Full Changelog: v0.27.0...v0.28.0