Package-level declarations

Types

Link copied to clipboard
object AtlasData
Link copied to clipboard
data class AtlasState(val dataset: Dataset, val version: String = dataset.versions.first(), val divergentOnly: Boolean = false, val level: DetailLevel = DetailLevel.SUMMARY, val device: Device? = null, val selected: String? = null, val progress: Progress? = null)
Link copied to clipboard
data class AtlasView(val version: String, val versions: List<String>, val groups: List<TargetGroup>, val deviceLabel: String?, val total: Int, val divergent: Int, val rows: List<RowView>, val deviceSummary: List<String>)
Link copied to clipboard
Link copied to clipboard
class BisectView(val plan: BisectPlan, val headline: String, val settings: List<SettingRow>, val first: TestWords?)
Link copied to clipboard
data class CandidateRow(val path: String, val text: String, val tier: String, val change: String, val refs: List<String>)
Link copied to clipboard
class CaseLine(val text: String, val failed: Boolean)
Link copied to clipboard
fun interface CasePicker

Lets the app ask the platform for a case file; onOpened gets the result, good or not.

Link copied to clipboard
class CaseStory(val headline: String, val sureness: String, val next: String, val differences: List<Difference>, val experiments: List<String>, val notes: List<String>)

A solved case in words. headline says what Drift found, sureness how it knows, next what to try; experiments and notes are the details behind them.

Link copied to clipboard
class CaseView(val name: String, val lines: List<CaseLine>, val verdict: String?, val story: CaseStory? = null)

A .driftcase as Studio shows it: what drift verify finds, or why the file cannot be read.

Link copied to clipboard
data class CellView(val target: String, val short: String, val lines: List<String>)
Link copied to clipboard
data class ChoiceView(val label: String, val targets: List<String>, val lines: List<String>)
Link copied to clipboard

Reads saved job logs the way drift import does, then ranks the two environments.

Link copied to clipboard
Link copied to clipboard
sealed interface CiResult
Link copied to clipboard
class CiSample(val passing: String, val failing: String, val job: String)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
class Device(val label: String, val transcript: String, val comparison: Comparison)

One device transcript and its comparison with the dataset; Device.transcript feeds atlas build.

Link copied to clipboard
fun interface DeviceMeasure

Runs the Kotlin probes where Studio is; progress gets the probes done and the total.

Link copied to clipboard
object Devices
Link copied to clipboard
class Difference(val path: String, val before: String?, val after: String?, val cause: Boolean)
Link copied to clipboard
fun interface FilePicker

The platform file chooser for files that end in an extension; onPicked gets the result.

Link copied to clipboard
fun interface FileSaver

Hands text to the user as a file called name; returns why it could not, else null.

Link copied to clipboard
object Glossary

One-sentence definitions, shown where a term first matters on a screen.

Link copied to clipboard
class GroupWords(val title: String, val about: String, val none: String)

What a group means, in fixed words; the groups are the engine's, not Studio's.

Link copied to clipboard
sealed interface Load<out T>

A file read into a value Studio shows, or the sentence that says why it could not be.

Link copied to clipboard
object Loads
Link copied to clipboard
@Immutable
class Palette(val canvas: Color, val surface: Color, val hairline: Color, val control: Color, val text: Color, val muted: Color, val accent: Color, val accentText: Color, val accentTint: Color, val warn: Color, val warnText: Color, val danger: Color)

Colors of one theme; every text color is checked against its backgrounds in a test.

Link copied to clipboard
class PickedFile(val name: String, val bytes: ByteArray?, val problem: String? = null)

A chosen file: its bytes, or problem when they could not be read.

Link copied to clipboard
object Plain
Link copied to clipboard
data class PredictState(val dataset: Dataset, val version: String = dataset.versions.first(), val seed: Int = 1, val position: Int = 0, val guess: Int? = null, val score: Score = Score())

Session state; PredictState.guess is a choice index or DONT_KNOW, null until answered.

Link copied to clipboard
data class PredictView(val probeId: String, val index: Int, val count: Int, val question: String, val source: List<String>, val target: String, val choices: List<ChoiceView>, val reveal: RevealView?, val score: Score)
Link copied to clipboard
class Preset(val label: String, val text: String)

A move people often check; it is offered only when the capsule holds every setting it names.

Link copied to clipboard
data class Progress(val done: Int, val total: Int)

Probes finished and the total of a run on this device.

Link copied to clipboard
data class RangeBar(val start: Float, val end: Float, val median: Float)

One bar on a shared axis that starts at 0; each position is a fraction of the axis.

Link copied to clipboard
object RangeBars
Link copied to clipboard
data class Reading(val headline: String, val evidence: String?, val caution: String)
Link copied to clipboard
class RequirementWords(val ask: String, val found: String, val why: String)

One requirement as a person reads it: what it asks, what the capsule has, why it is there.

Link copied to clipboard
data class RevealView(val verdict: String, val results: List<String>, val badge: String, val notes: List<String>)
Link copied to clipboard
data class RowView(val id: String, val area: String, val name: String, val divergent: Boolean, val badge: String, val cells: List<CellView>, val device: CellView?, val deviceVerdict: String?, val notes: List<String>, val agrees: List<String> = emptyList(), val differs: List<String> = emptyList())
Link copied to clipboard
class Sample(val name: String, val green: Capsule, val red: Capsule)
Link copied to clipboard
data class Score(val correct: Int = 0, val wrong: Int = 0, val skipped: Int = 0)
Link copied to clipboard
class SetEntry(val name: String, val failing: Boolean, val capsule: Capsule)

A capsule added to the set, with whether its run failed.

Link copied to clipboard
class SetSample(val name: String, val entries: List<SetEntry>)
Link copied to clipboard
object SetStory
Link copied to clipboard
class SettingRow(val title: String, val change: String)

One setting that differs: what it is, and its value in the passing and the failing capsule.

Link copied to clipboard
class SetView(val result: SetResult, val headline: String, val rows: List<SplitRow>)
Link copied to clipboard
class SplitRow(val title: String, val value: String, val counts: String, val separates: Boolean)

One setting value: what it is, where it is held and whether it alone splits the set.

Link copied to clipboard
data class Stage(val label: String, val count: Int)
Link copied to clipboard
data class StudioView(val funnel: List<Stage>, val verdict: String, val candidates: List<CandidateRow>, val hidden: Int, val extras: List<String>)
Link copied to clipboard
data class TargetGroup(val name: String, val targets: List<String>)

Targets of one family, in the order the matrix shows them.

Link copied to clipboard
class TestWords(val sentence: String, val settings: List<SettingRow>, val commands: List<String>)

The first test of the plan: what to change and the commands that record how it went.

Link copied to clipboard
data class TierWords(val level: Int, val label: String, val phrase: String)

A tier as a newcomer reads it: its place among the four and what it rests on.

Link copied to clipboard
sealed interface UpgradeCheckResult
Link copied to clipboard
Link copied to clipboard
class UpgradeView(val report: UpgradeReport, val headline: String)

The result of one check: the engine's report and the sentence that leads it.

Properties

Link copied to clipboard
const val ATLAS_ABOUT: String
Link copied to clipboard
const val ATLAS_FOOTER: String
Link copied to clipboard
const val BISECT_ABOUT: String
Link copied to clipboard
Link copied to clipboard
const val CASE_ABOUT: String
Link copied to clipboard
const val CI_ABOUT: String
Link copied to clipboard
Link copied to clipboard
const val CI_FOOTER: String
Link copied to clipboard
const val CI_LIMIT: String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
const val DONT_KNOW: Int
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
const val FOOTER: String
Link copied to clipboard
const val GREEN_RUN: String
Link copied to clipboard
const val HOME_ABOUT: String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
const val NO_FILES: String
Link copied to clipboard
const val NO_PICKER: String
Link copied to clipboard
const val OPEN_ABOUT: String
Link copied to clipboard
const val RANGE_NOTE: String
Link copied to clipboard
Link copied to clipboard
const val SAMPLE_ABOUT: String
Link copied to clipboard
const val SET_ABOUT: String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
@Composable
fun AtlasScreen(dataset: Dataset = AtlasData.dataset, measure: DeviceMeasure = Devices.measurer(), saver: FileSaver? = null)
Link copied to clipboard
@Composable
fun BisectScreen(files: FilePicker? = null, samples: List<Sample> = samples())
Link copied to clipboard
Link copied to clipboard
@Composable
fun CaseScreen(case: CaseView)
Link copied to clipboard
Link copied to clipboard
@Composable
fun CiScreen(files: FilePicker? = null, sample: () -> CiSample = ::ciSample)
Link copied to clipboard
@Composable
fun ContractScreen(files: FilePicker? = null, samples: List<Sample> = samples())
Link copied to clipboard
fun family(target: String): String

The family a column belongs to, read from its label (jvm-17 is JVM, wasm-webkit Wasm).

Link copied to clipboard
@Composable
fun FunnelPlot(view: StudioView)
Link copied to clipboard
Link copied to clipboard
@Composable
fun HomeScreen(canOpen: Boolean, problem: String?, onOpen: () -> Unit, onCi: () -> Unit, onSample: () -> Unit, onAtlas: () -> Unit, onUpgrade: () -> Unit, onContract: () -> Unit, onBisect: () -> Unit, onSet: () -> Unit)

The first screen: each way in has one line on what it does.

Link copied to clipboard
Link copied to clipboard
fun main(args: Array<String>)
fun main()
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Composable
fun SetScreen(files: FilePicker? = null, samples: List<SetSample> = setSamples())
Link copied to clipboard
@Composable
fun StudioApp(dataset: Dataset = AtlasData.dataset, samples: List<Sample> = samples(), measure: DeviceMeasure = Devices.measurer(), dark: Boolean = isSystemInDarkTheme(), case: CaseView? = null, picker: CasePicker? = null, files: FilePicker? = null, saver: FileSaver? = null, startOnAtlas: Boolean = false)
Link copied to clipboard
@Composable
fun StudioScreen(samples: List<Sample> = samples())
Link copied to clipboard
@Composable
fun StudioTheme(dark: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit)
Link copied to clipboard
Link copied to clipboard
@Composable
fun UpgradeScreen(files: FilePicker? = null, samples: List<Load.Ok<Capsule>> = upgradeSamples())