mirror of
https://github.com/openai/codex.git
synced 2026-11-01 19:33:35 +00:00
Improve analytics chart readability and navigation (#45770)
## Why Reading daily totals required selecting each bar, and changing grouping required opening a picker. Section navigation could shift vertically, while scroll hints appeared even when content fit. ## What changed - Make `g` cycle through available groupings and summary views directly. - Show daily totals on charts spanning up to seven days when space permits, prioritizing the selected value and keeping neighboring labels separate. - Keep section navigation at a stable height, show more legend rows in taller maximized reports, and move their update timestamp into the footer. - Hide scroll hints when content fits, including an exact fit, and show only the active summary view label. ## Testing Add regression tests and snapshots for seven-day totals, narrow label spacing, grouping wraparound and server capabilities, configured `g` navigation in ungrouped sections, stable tab placement, adaptive legends, footer timestamps, and overflow-dependent scroll hints. GitOrigin-RevId: 9d14f314b4a22ca2d926f0e69c6b89e4f9c8550d
This commit is contained in:
@@ -77,7 +77,6 @@ pub(crate) struct AnalyticsView {
|
||||
ranges: [usize; 3],
|
||||
end_date: chrono::NaiveDate,
|
||||
token_model: Option<String>,
|
||||
group_picker: Option<usize>,
|
||||
pub(crate) is_done: bool,
|
||||
}
|
||||
|
||||
@@ -105,7 +104,6 @@ impl AnalyticsView {
|
||||
ranges: [0; 3],
|
||||
end_date: chrono::Utc::now().date_naive(),
|
||||
token_model: None,
|
||||
group_picker: None,
|
||||
is_done: false,
|
||||
};
|
||||
view.sections[Section::Usage].group = 1;
|
||||
@@ -137,7 +135,6 @@ impl AnalyticsView {
|
||||
|
||||
pub(crate) fn refresh(&mut self) {
|
||||
self.end_date = chrono::Utc::now().date_naive();
|
||||
self.group_picker = None;
|
||||
self.live = self.connection.as_ref().map(|(config, _, _)| {
|
||||
std::sync::Arc::new(client::Live::new(
|
||||
std::sync::Arc::clone(config),
|
||||
@@ -294,7 +291,6 @@ impl AnalyticsView {
|
||||
if key_hint::plain(KeyCode::Char('q')).is_press(key)
|
||||
|| key_hint::ctrl(KeyCode::Char('c')).is_press(key)
|
||||
{
|
||||
self.group_picker = None;
|
||||
self.is_done = true;
|
||||
return;
|
||||
}
|
||||
@@ -303,30 +299,7 @@ impl AnalyticsView {
|
||||
} else {
|
||||
self.keymap.action_for(key)
|
||||
};
|
||||
if let Some(choice) = self.group_picker {
|
||||
let options = self.group_options();
|
||||
let Some(&group) = options.get(choice) else {
|
||||
self.group_picker = None;
|
||||
return;
|
||||
};
|
||||
match action {
|
||||
Some(ListAction::MoveUp | ListAction::MoveLeft) => {
|
||||
self.group_picker = Some((choice + options.len() - 1) % options.len());
|
||||
}
|
||||
Some(ListAction::MoveDown | ListAction::MoveRight) => {
|
||||
self.group_picker = Some((choice + 1) % options.len());
|
||||
}
|
||||
Some(ListAction::Accept) => {
|
||||
self.sections[self.section].group = group;
|
||||
self.group_picker = None;
|
||||
self.load_report(self.section);
|
||||
}
|
||||
Some(ListAction::Cancel) => self.group_picker = None,
|
||||
_ => {}
|
||||
}
|
||||
self.follow_selection = true;
|
||||
return;
|
||||
}
|
||||
|
||||
self.follow_selection = true;
|
||||
if key_hint::plain(KeyCode::Char('z')).is_press(key) {
|
||||
self.zoomed = !self.zoomed;
|
||||
@@ -379,10 +352,13 @@ impl AnalyticsView {
|
||||
return;
|
||||
}
|
||||
if key_hint::plain(KeyCode::Char('g')).is_press(key) && self.group_options().len() > 1 {
|
||||
self.group_picker = self
|
||||
.group_options()
|
||||
let options = self.group_options();
|
||||
let next = options
|
||||
.iter()
|
||||
.position(|group| *group == self.sections[self.section].group);
|
||||
.position(|group| *group == self.sections[self.section].group)
|
||||
.map_or(/*default*/ 0, |index| (index + 1) % options.len());
|
||||
self.sections[self.section].group = options[next];
|
||||
self.load_report(self.section);
|
||||
return;
|
||||
}
|
||||
let visible = self.visible_sections();
|
||||
@@ -407,7 +383,6 @@ impl AnalyticsView {
|
||||
self.scroll_offset = 0;
|
||||
}
|
||||
self.section = section;
|
||||
self.group_picker = None;
|
||||
return;
|
||||
}
|
||||
if self.section == Section::Summary {
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
//! Account layouts, authenticated report loading, independent ranges, and model filters.
|
||||
use super::*;
|
||||
use codex_config::types::KeybindingSpec;
|
||||
use codex_config::types::KeybindingsSpec;
|
||||
use codex_config::types::TuiKeymap;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
use crate::analytics::sections::Section;
|
||||
@@ -60,8 +63,6 @@ async fn changing_ranges_and_grouping_preserves_other_reports_and_focus() {
|
||||
press(&mut view, KeyCode::Char('r'));
|
||||
test_support::settle(&mut view).await;
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
press(&mut view, KeyCode::Down);
|
||||
press(&mut view, KeyCode::Enter);
|
||||
test_support::settle(&mut view).await;
|
||||
assert_eq!(
|
||||
(
|
||||
@@ -264,46 +265,42 @@ async fn account_reports_request_only_eligible_endpoints_and_refresh() {
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn legacy_response_closes_an_attribution_picker_that_is_no_longer_valid() {
|
||||
async fn grouping_cycle_uses_current_server_capabilities() {
|
||||
let server = test_support::server().await;
|
||||
let (_home, _app_server, mut view) = client::tests::connected_view(&server, "plus").await;
|
||||
view.section = Section::Usage;
|
||||
view.account = Load::Ready(codex_protocol::account::PlanType::Plus);
|
||||
view.sections[Section::Usage].group = 3;
|
||||
view.start_reports();
|
||||
view.group_picker = Some(3);
|
||||
test_support::settle(&mut view).await;
|
||||
assert_eq!(
|
||||
(
|
||||
view.group_picker,
|
||||
view.group_options(),
|
||||
view.sections[Section::Usage].group
|
||||
),
|
||||
(None, &[0, 2][..], 0)
|
||||
(view.group_options(), view.sections[Section::Usage].group),
|
||||
(&[0, 2][..], 0)
|
||||
);
|
||||
press(&mut view, KeyCode::Enter);
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
assert_eq!(view.sections[Section::Usage].group, 2);
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
assert_eq!(view.sections[Section::Usage].group, 0);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn legacy_response_invalidates_picker_before_the_next_draw() {
|
||||
let server = test_support::server().await;
|
||||
for choice in [2, 3] {
|
||||
let (_home, _app_server, mut view) = client::tests::connected_view(&server, "plus").await;
|
||||
view.section = Section::Usage;
|
||||
view.account = Load::Ready(codex_protocol::account::PlanType::Plus);
|
||||
view.start_reports();
|
||||
view.group_picker = Some(choice);
|
||||
// Complete the request without polling the view, as can happen between key events.
|
||||
tokio::time::timeout(std::time::Duration::from_secs(/*secs*/ 10), async {
|
||||
while view.consumer_attribution() {
|
||||
tokio::task::yield_now().await;
|
||||
}
|
||||
})
|
||||
.await
|
||||
.unwrap();
|
||||
press(&mut view, KeyCode::Enter);
|
||||
assert_eq!((view.group_picker, view.is_done), (None, false));
|
||||
test_support::settle(&mut view).await;
|
||||
assert_eq!(view.sections[Section::Usage].group, 0);
|
||||
#[test]
|
||||
fn ungrouped_sections_preserve_configured_g_jump_top() {
|
||||
let mut config = TuiKeymap::default();
|
||||
config.list.jump_top = Some(KeybindingsSpec::One(KeybindingSpec("g".into())));
|
||||
let keymap = RuntimeKeymap::from_config(&config).expect("valid list keymap");
|
||||
let mut view = fixture::view(models::AccountKind::Enterprise);
|
||||
view.keymap = keymap.list;
|
||||
for section in [
|
||||
Section::Chats,
|
||||
Section::Plugins,
|
||||
Section::Skills,
|
||||
Section::Credits,
|
||||
] {
|
||||
view.section = section;
|
||||
press(&mut view, KeyCode::End);
|
||||
assert!(view.sections[section].cursor > 0, "{section:?}");
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
assert_eq!(view.sections[section].cursor, 0, "{section:?}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -433,3 +430,62 @@ async fn unknown_plan_keeps_summary_available_without_billing_reports() {
|
||||
.unwrap();
|
||||
insta::assert_snapshot!(terminal.backend().to_string());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn navigation_keeps_its_row_when_sections_change() {
|
||||
for width in [64, 120] {
|
||||
let mut view = fixture::view(models::AccountKind::Consumer);
|
||||
let mut positions = Vec::new();
|
||||
for section in [
|
||||
Section::Summary,
|
||||
Section::Usage,
|
||||
Section::Chats,
|
||||
Section::Summary,
|
||||
] {
|
||||
view.section = section;
|
||||
let rendered = screen(&mut view, width, /*height*/ 40);
|
||||
positions.push(
|
||||
rendered
|
||||
.lines()
|
||||
.position(|line| line.contains("Summary") && line.contains("usage history"))
|
||||
.unwrap(),
|
||||
);
|
||||
}
|
||||
assert_eq!(positions, vec![positions[0]; 4]);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn taller_report_reveals_more_legend_rows_and_keeps_timestamp_in_footer() {
|
||||
let mut view = fixture::view(models::AccountKind::Consumer);
|
||||
view.section = Section::Usage;
|
||||
let mut history = fixture::history(/*report*/ 0, /*range*/ 0, /*group*/ 1);
|
||||
history.updated_at = Some(1_788_364_800);
|
||||
for day in &mut history.data {
|
||||
day.values = (0..10)
|
||||
.map(|index| models::AccountAnalyticsValue {
|
||||
key: format!("feature-{index}"),
|
||||
label: format!("Feature {}", index + 1),
|
||||
value: day.total / 10.0,
|
||||
})
|
||||
.collect();
|
||||
}
|
||||
view.sections[Section::Usage].history = data::Load::Ready(history);
|
||||
let short = screen(&mut view, /*width*/ 120, /*height*/ 30);
|
||||
let tall = screen(&mut view, /*width*/ 120, /*height*/ 60);
|
||||
assert!(
|
||||
tall.lines().filter(|line| line.contains('●')).count()
|
||||
> short.lines().filter(|line| line.contains('●')).count()
|
||||
);
|
||||
assert!(
|
||||
tall.lines()
|
||||
.rev()
|
||||
.take(3)
|
||||
.any(|line| line.contains("Updated"))
|
||||
);
|
||||
insta::assert_snapshot!("legend_tall_report", tall);
|
||||
for width in [24, 40, 64] {
|
||||
let narrow = screen(&mut view, width, /*height*/ 60);
|
||||
assert!(narrow.lines().last().unwrap().contains("UTC"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! Daily history with a stable chart and a compact, separated breakdown table.
|
||||
//! Chart series rank by the full range; table rows rank by the selected day and retain series colors.
|
||||
//! Missing and zero days retain the same row count; only explicit expansion changes height.
|
||||
//! Missing and zero days retain the same row count; only viewport changes and explicit expansion change height.
|
||||
|
||||
use super::AnalyticsView;
|
||||
use super::data;
|
||||
@@ -245,8 +245,13 @@ impl AnalyticsView {
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
values.sort_by(|(_, a), (_, b)| b.value.abs().total_cmp(&a.value.abs()));
|
||||
let remainder = if !expanded && values.len() > 4 {
|
||||
let remaining = values.split_off(/*at*/ 3);
|
||||
let row_budget = if self.zoomed {
|
||||
(self.viewport_height / 4).max(/*other*/ 4)
|
||||
} else {
|
||||
4
|
||||
};
|
||||
let remainder = if !expanded && values.len() > row_budget {
|
||||
let remaining = values.split_off(row_budget - 1);
|
||||
Some((
|
||||
format!("{} more", remaining.len()),
|
||||
remaining.iter().map(|(_, value)| value.value).sum::<f64>(),
|
||||
@@ -317,9 +322,10 @@ impl AnalyticsView {
|
||||
));
|
||||
lines.resize(table_end, Line::default());
|
||||
}
|
||||
if let Some(updated) = history
|
||||
.updated_at
|
||||
.and_then(|value| chrono::DateTime::from_timestamp(value, /*nsecs*/ 0))
|
||||
if !self.zoomed
|
||||
&& let Some(updated) = history
|
||||
.updated_at
|
||||
.and_then(|value| chrono::DateTime::from_timestamp(value, /*nsecs*/ 0))
|
||||
{
|
||||
lines.push(
|
||||
format!("Updated {} UTC", updated.format("%b %-d %H:%M"))
|
||||
|
||||
@@ -79,93 +79,69 @@ impl AnalyticsView {
|
||||
.into(),
|
||||
);
|
||||
}
|
||||
if focused && self.group_picker.is_some() {
|
||||
content.extend(self.group_options().iter().enumerate().map(
|
||||
|(index, group)| {
|
||||
let label = format!(
|
||||
"{} {}",
|
||||
if self.group_picker == Some(index) {
|
||||
"›"
|
||||
} else {
|
||||
" "
|
||||
},
|
||||
self.group_label(section, *group)
|
||||
);
|
||||
if self.group_picker == Some(index) {
|
||||
label.set_style(accent_style()).into()
|
||||
} else {
|
||||
label.into()
|
||||
match section {
|
||||
Section::Summary => content.extend(self.summary_lines(inner_width)),
|
||||
Section::Usage
|
||||
| Section::Plugins
|
||||
| Section::Credits
|
||||
| Section::Activity
|
||||
| Section::Skills => content.extend(
|
||||
self.history_lines(
|
||||
section,
|
||||
inner_width,
|
||||
inner_height.saturating_sub(/*rhs*/ 13).max(/*other*/ 1),
|
||||
)
|
||||
.lines,
|
||||
),
|
||||
Section::Plan => content.extend(self.plan_lines(inner_width).0),
|
||||
Section::Chats if !self.business() => {
|
||||
content.extend(self.task_lines(inner_width).0)
|
||||
}
|
||||
Section::Chats => {
|
||||
content.push(
|
||||
"30d active · lifetime credits"
|
||||
.set_style(secondary_style())
|
||||
.into(),
|
||||
);
|
||||
content.push(Line::default());
|
||||
if let Some(chats) = self.chats.ready() {
|
||||
if chats.rows.is_empty() {
|
||||
content.push(
|
||||
"No recent local chats.".set_style(secondary_style()).into(),
|
||||
);
|
||||
}
|
||||
},
|
||||
));
|
||||
} else {
|
||||
match section {
|
||||
Section::Summary => content.extend(self.summary_lines(inner_width)),
|
||||
Section::Usage
|
||||
| Section::Plugins
|
||||
| Section::Credits
|
||||
| Section::Activity
|
||||
| Section::Skills => content.extend(
|
||||
self.history_lines(
|
||||
section,
|
||||
inner_width,
|
||||
inner_height.saturating_sub(/*rhs*/ 13).max(/*other*/ 1),
|
||||
)
|
||||
.lines,
|
||||
),
|
||||
Section::Plan => content.extend(self.plan_lines(inner_width).0),
|
||||
Section::Chats if !self.business() => {
|
||||
content.extend(self.task_lines(inner_width).0)
|
||||
}
|
||||
Section::Chats => {
|
||||
for chat in chats.rows.iter().take(/*n*/ 5) {
|
||||
let amount = chat
|
||||
.usage
|
||||
.as_ref()
|
||||
.map(|usage| {
|
||||
data::credits(usage.estimated_usage_credits_micros)
|
||||
})
|
||||
.unwrap_or_else(|| "—".into());
|
||||
content.push(columns(
|
||||
truncate(
|
||||
chat.display_title().to_string().into(),
|
||||
inner_width.saturating_sub(amount.len() + 1),
|
||||
),
|
||||
number(amount).into(),
|
||||
inner_width,
|
||||
));
|
||||
}
|
||||
content.push(Line::default());
|
||||
content.push(
|
||||
"30d active · lifetime credits"
|
||||
"Local chats · excludes subagents"
|
||||
.set_style(secondary_style())
|
||||
.into(),
|
||||
);
|
||||
content.push(Line::default());
|
||||
if let Some(chats) = self.chats.ready() {
|
||||
if chats.rows.is_empty() {
|
||||
content.push(
|
||||
"No recent local chats."
|
||||
.set_style(secondary_style())
|
||||
.into(),
|
||||
);
|
||||
}
|
||||
for chat in chats.rows.iter().take(/*n*/ 5) {
|
||||
let amount = chat
|
||||
.usage
|
||||
.as_ref()
|
||||
.map(|usage| {
|
||||
data::credits(usage.estimated_usage_credits_micros)
|
||||
})
|
||||
.unwrap_or_else(|| "—".into());
|
||||
content.push(columns(
|
||||
truncate(
|
||||
chat.display_title().to_string().into(),
|
||||
inner_width.saturating_sub(amount.len() + 1),
|
||||
),
|
||||
number(amount).into(),
|
||||
inner_width,
|
||||
));
|
||||
}
|
||||
content.push(Line::default());
|
||||
if chats.rows.iter().any(|chat| chat.usage.is_none()) {
|
||||
content.push(
|
||||
"Local chats · excludes subagents"
|
||||
"Some estimates unavailable"
|
||||
.set_style(secondary_style())
|
||||
.into(),
|
||||
);
|
||||
if chats.rows.iter().any(|chat| chat.usage.is_none()) {
|
||||
content.push(
|
||||
"Some estimates unavailable"
|
||||
.set_style(secondary_style())
|
||||
.into(),
|
||||
);
|
||||
}
|
||||
} else if let Some(message) = self.chats.message() {
|
||||
content
|
||||
.push(message.to_string().set_style(secondary_style()).into());
|
||||
}
|
||||
} else if let Some(message) = self.chats.message() {
|
||||
content.push(message.to_string().set_style(secondary_style()).into());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,27 +58,9 @@ impl AnalyticsView {
|
||||
.into(),
|
||||
);
|
||||
}
|
||||
let mut selection;
|
||||
let selection;
|
||||
let mut chart_bands = 0;
|
||||
if focused && let Some(choice) = self.group_picker {
|
||||
lines.extend(
|
||||
self.group_options()
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(index, group)| {
|
||||
let label = format!(
|
||||
"{} {}",
|
||||
if index == choice { "›" } else { " " },
|
||||
self.group_label(section, *group)
|
||||
);
|
||||
if index == choice {
|
||||
label.set_style(accent_style()).into()
|
||||
} else {
|
||||
label.into()
|
||||
}
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
if section == Section::Summary {
|
||||
selection = 0..1;
|
||||
lines.extend(self.summary_lines(width));
|
||||
@@ -100,9 +82,7 @@ impl AnalyticsView {
|
||||
lines.extend(history.lines);
|
||||
selection = 0..lines.len();
|
||||
}
|
||||
if focused && self.group_picker.is_some() {
|
||||
selection = 0..2 + self.group_options().len();
|
||||
}
|
||||
|
||||
let mut wrapped = Vec::new();
|
||||
let mut wrapped_selection = 0..0;
|
||||
for (index, line) in lines.into_iter().enumerate() {
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
//! Missing-day markers, selected-value callouts, and stable calendar labels.
|
||||
//! Missing-day markers, daily-value callouts, and stable calendar labels.
|
||||
|
||||
use super::Renderer;
|
||||
use super::amount;
|
||||
use super::layout::Layout;
|
||||
use super::painting::Band;
|
||||
use crate::analytics::styles::number;
|
||||
use crate::analytics::styles::secondary_style;
|
||||
use crate::color::is_light;
|
||||
use crate::style::accent_style;
|
||||
use crate::terminal_palette::default_bg;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::style::Style;
|
||||
use ratatui::style::Styled;
|
||||
@@ -52,72 +53,101 @@ impl Renderer<'_> {
|
||||
width,
|
||||
..
|
||||
} = self.layout;
|
||||
let selected_total = self.days[self.cursor]
|
||||
.1
|
||||
.map_or(/*default*/ 0.0, |day| day.total);
|
||||
let selected = self.days[self.cursor]
|
||||
.1
|
||||
.map_or_else(|| "—".into(), |_| amount(selected_total, self.unit));
|
||||
// A partial number can mean a different amount; leave the cursor when the value cannot fit.
|
||||
let selected = if selected.width() <= plot_width {
|
||||
selected
|
||||
} else {
|
||||
String::new()
|
||||
};
|
||||
let x = self.layout.center(self.cursor - start);
|
||||
let label_width = selected.width();
|
||||
let label_x = x
|
||||
.saturating_sub(label_width / 2)
|
||||
.clamp(axis_width, width - label_width);
|
||||
let below = selected_total < 0.0;
|
||||
let band = if below {
|
||||
Band::Negative
|
||||
} else {
|
||||
Band::Positive
|
||||
};
|
||||
let extent = self.values[self.cursor]
|
||||
.iter()
|
||||
.map(|value| band.amount(*value))
|
||||
.sum::<f64>();
|
||||
let rows = ((extent * height as f64 / self.peak).ceil() as usize).min(height);
|
||||
let cap = if below {
|
||||
baseline + rows
|
||||
} else {
|
||||
baseline - rows
|
||||
};
|
||||
let mut label_y = if below {
|
||||
cap + 1
|
||||
} else {
|
||||
cap.saturating_sub(/*rhs*/ 1)
|
||||
};
|
||||
// Keep the callout close without painting over a neighboring bar. A guide connects any gap.
|
||||
while (label_x..label_x + label_width)
|
||||
.any(|col| buf[(col as u16, label_y as u16)].symbol() != " ")
|
||||
// Give the selected value first choice of space; the other labels never overwrite it.
|
||||
for index in
|
||||
std::iter::once(self.cursor).chain((start..start + self.layout.count).filter(|index| {
|
||||
self.days.len() <= 7
|
||||
&& *index != self.cursor
|
||||
&& self.days[*index].1.is_some_and(|day| {
|
||||
day.total != 0.0 || self.values[*index].iter().any(|value| *value != 0.0)
|
||||
})
|
||||
}))
|
||||
{
|
||||
if below {
|
||||
label_y += 1;
|
||||
} else if label_y > 0 {
|
||||
label_y -= 1;
|
||||
} else {
|
||||
break;
|
||||
let total = self.days[index].1.map_or(/*default*/ 0.0, |day| day.total);
|
||||
let label = self.days[index]
|
||||
.1
|
||||
.map_or_else(|| "—".into(), |_| amount(total, self.unit));
|
||||
// A partial number can mean a different amount; leave the cursor when the value cannot fit.
|
||||
if label.width() > plot_width {
|
||||
continue;
|
||||
}
|
||||
let x = self.layout.center(index - start);
|
||||
let label_width = label.width();
|
||||
let label_x = x
|
||||
.saturating_sub(label_width / 2)
|
||||
.clamp(axis_width, width - label_width);
|
||||
let occupied = label_x.saturating_sub(/*rhs*/ 1).max(axis_width)
|
||||
..(label_x + label_width + 1).min(width);
|
||||
let below = total < 0.0;
|
||||
let band = if below {
|
||||
Band::Negative
|
||||
} else {
|
||||
Band::Positive
|
||||
};
|
||||
let extent = self.values[index]
|
||||
.iter()
|
||||
.map(|value| band.amount(*value))
|
||||
.sum::<f64>();
|
||||
let rows = ((extent * height as f64 / self.peak).ceil() as usize).min(height);
|
||||
let cap = if below {
|
||||
baseline + rows
|
||||
} else {
|
||||
baseline - rows
|
||||
};
|
||||
let mut label_y = if below {
|
||||
cap + 1
|
||||
} else {
|
||||
cap.saturating_sub(/*rhs*/ 1)
|
||||
};
|
||||
// Keep the callout close without painting over a neighboring bar. A guide connects any gap.
|
||||
while occupied
|
||||
.clone()
|
||||
.any(|col| buf[(col as u16, label_y as u16)].symbol() != " ")
|
||||
{
|
||||
if below && label_y + 1 < marker_row {
|
||||
label_y += 1;
|
||||
} else if !below && label_y > 0 {
|
||||
label_y -= 1;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if occupied
|
||||
.clone()
|
||||
.any(|col| buf[(col as u16, label_y as u16)].symbol() != " ")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// Use white on dark backgrounds and the terminal foreground on light backgrounds.
|
||||
let style = if index == self.cursor {
|
||||
let selected = Style::default().bold().not_dim();
|
||||
if default_bg().is_some_and(is_light) {
|
||||
selected
|
||||
} else {
|
||||
selected.white()
|
||||
}
|
||||
} else {
|
||||
Style::default().dim()
|
||||
};
|
||||
let guide = if below {
|
||||
cap + 1..label_y
|
||||
} else {
|
||||
label_y + 1..cap
|
||||
};
|
||||
for y in guide {
|
||||
let cell = &mut buf[(x as u16, y as u16)];
|
||||
if cell.symbol() == " " {
|
||||
cell.set_char('┊').set_style(style);
|
||||
}
|
||||
}
|
||||
buf.set_line(
|
||||
label_x as u16,
|
||||
label_y as u16,
|
||||
&Line::from(label.set_style(style)),
|
||||
label_width as u16,
|
||||
);
|
||||
}
|
||||
let guide = if below {
|
||||
cap + 1..label_y
|
||||
} else {
|
||||
label_y + 1..cap
|
||||
};
|
||||
for y in guide {
|
||||
buf[(x as u16, y as u16)]
|
||||
.set_char('┊')
|
||||
.set_style(accent_style());
|
||||
}
|
||||
buf.set_line(
|
||||
label_x as u16,
|
||||
label_y as u16,
|
||||
&Line::from(number(selected)),
|
||||
label_width as u16,
|
||||
);
|
||||
let x = self.layout.center(self.cursor - start);
|
||||
buf[(x as u16, marker_row as u16)]
|
||||
.set_char('▲')
|
||||
.set_style(accent_style());
|
||||
|
||||
@@ -467,3 +467,69 @@ fn duplicate_message_dates_render_the_full_other_remainder() {
|
||||
);
|
||||
insta::assert_snapshot!(display(&rendered));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn seven_day_totals_render_without_selecting_each_bar() {
|
||||
let start: NaiveDate = "2026-01-01".parse().unwrap();
|
||||
let rows = (0..7)
|
||||
.map(|index| AccountAnalyticsDay {
|
||||
date: start + chrono::Duration::days(index),
|
||||
total: 111.0 + index as f64 * 100.0,
|
||||
values: vec![value("a", 111.0 + index as f64 * 100.0)],
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
let days = rows
|
||||
.iter()
|
||||
.map(|day| (day.date, Some(day)))
|
||||
.collect::<Vec<_>>();
|
||||
let rendered = chart(
|
||||
&days,
|
||||
&rows[0].values,
|
||||
/*cursor*/ 3,
|
||||
/*width*/ 100,
|
||||
/*height*/ 8,
|
||||
AccountAnalyticsUnit::Count,
|
||||
);
|
||||
let text = display(&rendered);
|
||||
for day in &rows {
|
||||
assert!(text.contains(&day.total.to_string()));
|
||||
}
|
||||
insta::assert_snapshot!("seven_day_totals", text);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn narrow_equal_height_totals_remain_separate_numbers() {
|
||||
let start: NaiveDate = "2026-01-01".parse().unwrap();
|
||||
let rows = (0..7)
|
||||
.map(|index| AccountAnalyticsDay {
|
||||
date: start + chrono::Duration::days(index),
|
||||
total: 111.0,
|
||||
values: vec![value("a", /*value*/ 111.0)],
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
let days = rows
|
||||
.iter()
|
||||
.map(|day| (day.date, Some(day)))
|
||||
.collect::<Vec<_>>();
|
||||
let mut screens = Vec::new();
|
||||
for width in [21, 28, 35] {
|
||||
let rendered = chart(
|
||||
&days,
|
||||
&rows[0].values,
|
||||
/*cursor*/ 3,
|
||||
width,
|
||||
/*height*/ 4,
|
||||
AccountAnalyticsUnit::Count,
|
||||
);
|
||||
let text = rendered
|
||||
.lines
|
||||
.iter()
|
||||
.map(|line| line.to_string().trim_end().to_owned())
|
||||
.collect::<Vec<_>>()
|
||||
.join("\n");
|
||||
assert!(text.contains("111"));
|
||||
assert!(!text.contains("111111"));
|
||||
screens.push(text);
|
||||
}
|
||||
insta::assert_snapshot!(screens.join("\n\n"));
|
||||
}
|
||||
|
||||
@@ -102,21 +102,8 @@ impl AnalyticsView {
|
||||
.map(crate::key_hint::ShortcutHint::display_label)
|
||||
.unwrap_or_default()
|
||||
};
|
||||
let controls = if self.visible_sections().is_empty() {
|
||||
let mut controls = if self.visible_sections().is_empty() {
|
||||
format!("R refresh · {} back · q close", hint(ListAction::Cancel))
|
||||
} else if self.group_picker.is_some() {
|
||||
format!(
|
||||
"{}/{} {} · {} select · {} cancel",
|
||||
hint(ListAction::MoveUp),
|
||||
hint(ListAction::MoveDown),
|
||||
if self.section == Section::Summary {
|
||||
"view"
|
||||
} else {
|
||||
"group"
|
||||
},
|
||||
hint(ListAction::Accept),
|
||||
hint(ListAction::Cancel)
|
||||
)
|
||||
} else {
|
||||
let navigation = if !self.zoomed {
|
||||
format!("{}/z maximize", hint(ListAction::Accept))
|
||||
@@ -193,21 +180,42 @@ impl AnalyticsView {
|
||||
}
|
||||
Line::from(spans)
|
||||
};
|
||||
let updated = self
|
||||
.zoomed
|
||||
.then(|| self.sections[self.section].history.ready())
|
||||
.flatten()
|
||||
.and_then(|history| history.updated_at)
|
||||
.and_then(|value| chrono::DateTime::from_timestamp(value, /*nsecs*/ 0))
|
||||
.map(|updated| format!("Updated {} UTC", updated.format("%b %-d %H:%M")));
|
||||
let add_updated = |footer: &mut Vec<Line<'static>>| {
|
||||
if let Some(updated) = &updated {
|
||||
let timestamp = Line::from(updated.clone().set_style(secondary_style()));
|
||||
if let Some(line) = footer
|
||||
.last_mut()
|
||||
.filter(|line| line.width() + timestamp.width() + 3 <= width)
|
||||
{
|
||||
*line = columns(line.clone(), timestamp, width);
|
||||
} else {
|
||||
footer.extend(word_wrap_lines(
|
||||
[columns(Line::default(), timestamp, width)],
|
||||
RtOptions::new(width),
|
||||
));
|
||||
}
|
||||
}
|
||||
};
|
||||
let mut footer = word_wrap_lines(controls.lines().map(control_line), RtOptions::new(width));
|
||||
if self.group_picker.is_none()
|
||||
&& matches!(
|
||||
self.section,
|
||||
Section::Plugins | Section::Activity | Section::Skills
|
||||
)
|
||||
&& !self.day_has_details(self.section, self.sections[self.section].cursor)
|
||||
if matches!(
|
||||
self.section,
|
||||
Section::Plugins | Section::Activity | Section::Skills
|
||||
) && !self.day_has_details(self.section, self.sections[self.section].cursor)
|
||||
{
|
||||
let height = footer.len();
|
||||
let controls =
|
||||
controls.replace(&format!(" · {} details", hint(ListAction::Accept)), "");
|
||||
controls = controls.replace(&format!(" · {} details", hint(ListAction::Accept)), "");
|
||||
footer = word_wrap_lines(controls.lines().map(control_line), RtOptions::new(width));
|
||||
// Removing a contextual hint must not resize the chart on narrow terminals.
|
||||
footer.resize(height, Line::default());
|
||||
}
|
||||
add_updated(&mut footer);
|
||||
let sections = if self.zoomed {
|
||||
let line = Line::from(
|
||||
self.visible_sections()
|
||||
@@ -235,7 +243,7 @@ impl AnalyticsView {
|
||||
};
|
||||
let [title, range, tabs, body, hints] = Layout::vertical([
|
||||
Constraint::Length(1),
|
||||
Constraint::Length(if show_range { 2 } else { 1 }),
|
||||
Constraint::Length(2),
|
||||
Constraint::Length(if sections.is_empty() {
|
||||
0
|
||||
} else {
|
||||
@@ -309,9 +317,7 @@ impl AnalyticsView {
|
||||
panel = self.panel(self.section, width, height);
|
||||
}
|
||||
}
|
||||
let center_summary = self.section == Section::Summary
|
||||
&& self.profile.ready().is_some()
|
||||
&& self.group_picker.is_none();
|
||||
let center_summary = self.section == Section::Summary && self.profile.ready().is_some();
|
||||
if center_summary {
|
||||
// Keep the section heading and rule fixed; center the profile below them.
|
||||
let padding = usize::from(body.height).saturating_sub(panel.lines.len()) / 2;
|
||||
@@ -324,13 +330,41 @@ impl AnalyticsView {
|
||||
} else {
|
||||
panel.selection
|
||||
};
|
||||
if !center_summary {
|
||||
if !center_summary && panel.lines.len() > usize::from(body.height) {
|
||||
panel.lines.push(Line::default());
|
||||
}
|
||||
(panel.lines, selection)
|
||||
} else {
|
||||
self.dashboard_lines(width, usize::from(body.height))
|
||||
};
|
||||
if lines.len() <= self.viewport_height {
|
||||
let height = footer.len();
|
||||
let controls = controls
|
||||
.replace(
|
||||
&format!(
|
||||
" · {}/{} scroll",
|
||||
hint(ListAction::PageUp),
|
||||
hint(ListAction::PageDown)
|
||||
),
|
||||
"",
|
||||
)
|
||||
.replace(
|
||||
&format!(
|
||||
" · {}/{} scroll",
|
||||
hint(ListAction::MoveUp),
|
||||
hint(ListAction::MoveDown)
|
||||
),
|
||||
"",
|
||||
);
|
||||
footer = word_wrap_lines(controls.lines().map(control_line), RtOptions::new(width));
|
||||
add_updated(&mut footer);
|
||||
if updated.is_some() {
|
||||
let padding = height.saturating_sub(footer.len());
|
||||
footer.splice(0..0, std::iter::repeat_n(Line::default(), padding));
|
||||
} else {
|
||||
footer.resize(height, Line::default());
|
||||
}
|
||||
}
|
||||
if self.follow_selection {
|
||||
if selection.start < self.scroll_offset {
|
||||
self.scroll_offset = selection.start;
|
||||
|
||||
@@ -93,12 +93,6 @@ impl AnalyticsView {
|
||||
{
|
||||
self.sections[Section::Usage].group = 0;
|
||||
}
|
||||
if self
|
||||
.group_picker
|
||||
.is_some_and(|choice| choice >= self.group_options().len())
|
||||
{
|
||||
self.group_picker = None;
|
||||
}
|
||||
if let Some(chats) = self.tasks.ready() {
|
||||
self.sections[Section::Chats].cursor = self.sections[Section::Chats]
|
||||
.cursor
|
||||
|
||||
+1
-2
@@ -1,12 +1,12 @@
|
||||
---
|
||||
source: tui/src/analytics/connection_tests.rs
|
||||
assertion_line: 189
|
||||
expression: terminal.backend().to_string()
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" Couldn't load account plan. Press R to retry Analytics. "
|
||||
" "
|
||||
" "
|
||||
@@ -41,5 +41,4 @@ expression: terminal.backend().to_string()
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+3
-3
@@ -4,6 +4,7 @@ expression: terminal.backend().to_string()
|
||||
---
|
||||
" Analytics · Live account · analytics@example.test "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -47,6 +48,5 @@ expression: terminal.backend().to_string()
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–5 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–5 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
+4
-4
@@ -4,6 +4,7 @@ expression: terminal.backend().to_string()
|
||||
---
|
||||
" Analytics · Live account · analytics@example.test "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -13,7 +14,6 @@ expression: terminal.backend().to_string()
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" Local account "
|
||||
" @local-user "
|
||||
" Enterprise "
|
||||
@@ -21,7 +21,7 @@ expression: terminal.backend().to_string()
|
||||
" 12.3K 12.3K — — — "
|
||||
" Lifetime tokens Peak tokens Longest chat Current streak Longest streak "
|
||||
" "
|
||||
" Token activity [Daily] Weekly Cumulative "
|
||||
" Token activity Daily "
|
||||
" Last 12 months "
|
||||
" "
|
||||
" Nov Dec Jan Feb Mar Apr May Jun Jul Aug "
|
||||
@@ -48,5 +48,5 @@ expression: terminal.backend().to_string()
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–5 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–5 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
+1
-1
@@ -6,6 +6,7 @@ expression: terminal.backend().to_string()
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" No history has been reported. "
|
||||
" "
|
||||
" "
|
||||
@@ -24,5 +25,4 @@ expression: terminal.backend().to_string()
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+5
-5
@@ -4,6 +4,7 @@ expression: "output.join(\"\\n\")"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Total usage history [3 Plan usage history] 4 Messages 5 Plugins called 6 Skills used 7 Top chats "
|
||||
" "
|
||||
" ▎ Plan usage history By feature "
|
||||
@@ -29,12 +30,12 @@ expression: "output.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–7 section · z dashboard · ←/→ window · ↑/↓ period · enter details "
|
||||
" g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" g group · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" Summary Total usage history [Plan usage history] "
|
||||
" Messages Plugins called Skills used Top chats "
|
||||
" "
|
||||
@@ -58,8 +59,7 @@ expression: "output.join(\"\\n\")"
|
||||
" activity may be delayed "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–7 section · z dashboard · ←/→ window · ↑/↓ "
|
||||
" period · enter details "
|
||||
" g group · R refresh · pgup/pgdn scroll · esc back · q "
|
||||
" close "
|
||||
" g group · R refresh · esc back · q close "
|
||||
" "
|
||||
|
||||
+4
-4
@@ -4,12 +4,13 @@ expression: output
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" ╭─ 1 Summary ────────────────────────────────────────╮ ╭─ 2 Total usage history ────────────────────────────╮ "
|
||||
" │ │ │ │ "
|
||||
" │ No history has been reported. │ │ 7d │ "
|
||||
" │ │ │ By feature │ "
|
||||
" │ │ │ Total usage · relative units │ "
|
||||
" │ │ │ 86 │ "
|
||||
" │ │ │ 20 73 64 91 81 100 86 │ "
|
||||
" │ │ │ 100 ▁▁▁▁ ▅▅▅▅ ▅▅▅▅ ▇▇▇▇ ▆▆▆▆ ████ ▆▆▆▆ │ "
|
||||
" │ │ │ 0 ─────────────────────────────────────────────── │ "
|
||||
" │ │ │ ▲ │ "
|
||||
@@ -26,7 +27,7 @@ expression: output
|
||||
" │ By feature │ │ 7d │ "
|
||||
" │ › 5-hour limits │ │ By model │ "
|
||||
" │ │ │ 574 reported messages │ "
|
||||
" │ Latest period · 12 total 125% │ │ 103 │ "
|
||||
" │ Latest period · 12 total 125% │ │ 62 83 107 75 59 85 103 │ "
|
||||
" │ │ │ 150 ▃▃▃▃ ▄▄▄▄ ▅▅▅▅ ▄▄▄▄ ▃▃▃▃ ▄▄▄▄ ▅▅▅▅ │ "
|
||||
" │ Weekly limits │ │ 0 ─────────────────────────────────────────────── │ "
|
||||
" │ │ │ ▲ │ "
|
||||
@@ -42,7 +43,7 @@ expression: output
|
||||
" │ │ │ │ "
|
||||
" │ 7d │ │ 7d │ "
|
||||
" │ 186 calls │ │ 54 uses │ "
|
||||
" │ 29 │ │ 11 │ "
|
||||
" │ 34 23 29 26 22 23 29 │ │ 8 6 9 8 7 5 11 │ "
|
||||
" │ 40 ▆▆▆▆ ▄▄▄▄ ▅▅▅▅ ▅▅▅▅ ▄▄▄▄ ▄▄▄▄ ▅▅▅▅ │ │ 20 ▃▃▃▃ ▂▂▂▂ ▃▃▃▃ ▃▃▃▃ ▂▂▂▂ ▂▂▂▂ ▄▄▄▄ │ "
|
||||
" │ 0 ──────────────────────────────────────────────── │ │ 0 ──────────────────────────────────────────────── │ "
|
||||
" │ ▲ │ │ ▲ │ "
|
||||
@@ -59,6 +60,5 @@ expression: output
|
||||
" │ │ "
|
||||
" │ No history has been reported. │ "
|
||||
" │ │ "
|
||||
" │ │ "
|
||||
" tab/1–7 section · enter/z maximize "
|
||||
" g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
|
||||
+5
-4
@@ -19,11 +19,12 @@ expression: display(&rendered)
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
6: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 22:1 24:0
|
||||
1: 0:0 1:2 3:0 18:3 30:0
|
||||
@@ -37,5 +38,5 @@ Rows (column:palette):
|
||||
9: 0:0 18:4 30:0
|
||||
10: 0:0 18:4 30:0
|
||||
11: 0:0 2:2 3:0 4:2
|
||||
12: 0:0 23:1 24:0
|
||||
13: 0:0 20:5 26:0
|
||||
12: 0:0 23:5 24:0
|
||||
13: 0:0 20:6 26:0
|
||||
|
||||
+39
-35
@@ -3,7 +3,7 @@ source: tui/src/analytics/plot_tests.rs
|
||||
expression: "snapshots.join(\"\\n\\n\")"
|
||||
---
|
||||
width=36, cursor=0
|
||||
|
||||
5
|
||||
6 ▄▄▄▄▄▄▄
|
||||
███████
|
||||
— 0 ███████
|
||||
@@ -13,22 +13,23 @@ width=36, cursor=0
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().fg(Color::Rgb(165, 165, 165)).bg(Color::Reset).underline_color(Color::Reset)
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
4: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
1: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
2: Style::new().fg(Color::Rgb(165, 165, 165)).bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
6: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 1:1 2:0 27:2 34:0
|
||||
2: 0:0 27:2 34:0
|
||||
3: 0:0 8:3 9:0 19:4 20:0 27:2 34:0
|
||||
4: 0:0 1:1 2:0 3:4
|
||||
5: 0:0 8:3 9:0
|
||||
6: 0:0 5:5 11:0 16:1 22:0 27:1 33:0
|
||||
0: 0:0 30:1 31:0
|
||||
1: 0:0 1:2 2:0 27:3 34:0
|
||||
2: 0:0 27:3 34:0
|
||||
3: 0:0 8:4 9:0 19:1 20:0 27:3 34:0
|
||||
4: 0:0 1:2 2:0 3:1
|
||||
5: 0:0 8:5 9:0
|
||||
6: 0:0 5:6 11:0 16:2 22:0 27:2 33:0
|
||||
|
||||
width=36, cursor=1
|
||||
|
||||
5
|
||||
6 ▄▄▄▄▄▄▄
|
||||
███████
|
||||
— 0 ███████
|
||||
@@ -38,19 +39,20 @@ width=36, cursor=1
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().fg(Color::Rgb(165, 165, 165)).bg(Color::Reset).underline_color(Color::Reset)
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
1: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
2: Style::new().fg(Color::Rgb(165, 165, 165)).bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
6: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 1:1 2:0 27:2 34:0
|
||||
2: 0:0 27:2 34:0
|
||||
3: 0:0 8:3 9:0 19:4 20:0 27:2 34:0
|
||||
4: 0:0 1:1 2:0 3:3
|
||||
5: 0:0 19:4 20:0
|
||||
6: 0:0 5:1 11:0 16:5 22:0 27:1 33:0
|
||||
0: 0:0 30:1 31:0
|
||||
1: 0:0 1:2 2:0 27:3 34:0
|
||||
2: 0:0 27:3 34:0
|
||||
3: 0:0 8:1 9:0 19:4 20:0 27:3 34:0
|
||||
4: 0:0 1:2 2:0 3:1
|
||||
5: 0:0 19:5 20:0
|
||||
6: 0:0 5:2 11:0 16:6 22:0 27:2 33:0
|
||||
|
||||
width=8, cursor=2
|
||||
5
|
||||
@@ -63,19 +65,20 @@ width=8, cursor=2
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().fg(Color::Rgb(165, 165, 165)).bg(Color::Reset).underline_color(Color::Reset)
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().fg(Color::Rgb(165, 165, 165)).bg(Color::Reset).underline_color(Color::Reset)
|
||||
6: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 6:1 7:0
|
||||
1: 0:0 5:2 7:0
|
||||
2: 0:0 5:2 7:0
|
||||
3: 0:3 1:0 3:3 4:0 5:2 7:0
|
||||
4: 0:3
|
||||
5: 0:0 6:1 7:0
|
||||
6: 0:4 2:0 5:5 7:0
|
||||
5: 0:0 6:4 7:0
|
||||
6: 0:5 2:0 5:6 7:0
|
||||
|
||||
width=1, cursor=2
|
||||
5
|
||||
@@ -87,15 +90,16 @@ width=1, cursor=2
|
||||
|
||||
|
||||
Palette:
|
||||
0: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
0: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
4: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:1
|
||||
2: 0:1
|
||||
3: 0:1
|
||||
4: 0:2
|
||||
5: 0:0
|
||||
6: 0:3
|
||||
5: 0:3
|
||||
6: 0:4
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
---
|
||||
source: tui/src/analytics/plot_tests.rs
|
||||
expression: "screens.join(\"\\n\\n\")"
|
||||
---
|
||||
111 111 111
|
||||
111 ┊ 111 ┊ 111 ┊
|
||||
▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇
|
||||
██ ██ ██ ██ ██ ██ ██
|
||||
██ ██ ██ ██ ██ ██ ██
|
||||
─────────────────────
|
||||
▲
|
||||
1 2 3 4 5 6 7
|
||||
|
||||
|
||||
111 111 111 111 111 111 111
|
||||
▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇
|
||||
██ ██ ██ ██ ██ ██ ██
|
||||
██ ██ ██ ██ ██ ██ ██
|
||||
────────────────────────────
|
||||
▲
|
||||
1 2 3 4 5 6 7
|
||||
|
||||
|
||||
150 111 111 111 111 111 111 111
|
||||
▇▇ ▇▇ ▇▇ ▇▇▇ ▇▇ ▇▇ ▇▇▇
|
||||
75 ██ ██ ██ ███ ██ ██ ███
|
||||
██ ██ ██ ███ ██ ██ ███
|
||||
0 ──────────────────────────────
|
||||
▲
|
||||
1 2 3 4 5 6 7
|
||||
+18
-14
@@ -13,16 +13,17 @@ width=1
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:1
|
||||
2: 0:2
|
||||
3: 0:2
|
||||
4: 0:3
|
||||
5: 0:1
|
||||
5: 0:4
|
||||
6: 0:0
|
||||
|
||||
width=2
|
||||
@@ -36,18 +37,19 @@ width=2
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 1:1
|
||||
2: 0:2
|
||||
3: 0:2
|
||||
4: 0:3
|
||||
5: 0:0 1:1
|
||||
6: 0:4
|
||||
5: 0:0 1:4
|
||||
6: 0:5
|
||||
|
||||
width=5
|
||||
|
||||
@@ -60,18 +62,19 @@ width=5
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 4:1
|
||||
2: 0:2
|
||||
3: 0:2
|
||||
4: 0:3
|
||||
5: 0:0 4:1
|
||||
6: 0:0 3:4
|
||||
5: 0:0 4:4
|
||||
6: 0:0 3:5
|
||||
|
||||
width=6
|
||||
|
||||
@@ -84,15 +87,16 @@ Jan 15
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 5:1
|
||||
2: 0:2
|
||||
3: 0:2
|
||||
4: 0:3
|
||||
5: 0:0 5:1
|
||||
6: 0:4
|
||||
5: 0:0 5:4
|
||||
6: 0:5
|
||||
|
||||
+25
-20
@@ -14,10 +14,11 @@ Jan 15
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 1:1 5:0
|
||||
1: 0:0 1:2 6:0
|
||||
@@ -25,8 +26,8 @@ Rows (column:palette):
|
||||
3: 0:0 1:2 6:0
|
||||
4: 0:0 1:2 6:0
|
||||
5: 0:3
|
||||
6: 0:0 3:1 4:0
|
||||
7: 0:4 6:0
|
||||
6: 0:0 3:4 4:0
|
||||
7: 0:5 6:0
|
||||
|
||||
width=30
|
||||
100M
|
||||
@@ -40,10 +41,11 @@ width=30
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 15:1 19:0
|
||||
1: 0:0 1:2 5:0 12:3 24:0
|
||||
@@ -51,8 +53,8 @@ Rows (column:palette):
|
||||
3: 0:0 2:2 5:0 12:3 24:0
|
||||
4: 0:0 12:3 24:0
|
||||
5: 0:0 4:2 5:0 6:2
|
||||
6: 0:0 17:1 18:0
|
||||
7: 0:0 14:4 20:0
|
||||
6: 0:0 17:4 18:0
|
||||
7: 0:0 14:5 20:0
|
||||
|
||||
width=35
|
||||
100M
|
||||
@@ -66,10 +68,11 @@ width=35
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 18:1 22:0
|
||||
1: 0:0 1:2 5:0 14:3 26:0
|
||||
@@ -77,8 +80,8 @@ Rows (column:palette):
|
||||
3: 0:0 2:2 5:0 14:3 26:0
|
||||
4: 0:0 14:3 26:0
|
||||
5: 0:0 4:2 5:0 6:2
|
||||
6: 0:0 20:1 21:0
|
||||
7: 0:0 17:4 23:0
|
||||
6: 0:0 20:4 21:0
|
||||
7: 0:0 17:5 23:0
|
||||
|
||||
width=44
|
||||
100M
|
||||
@@ -92,10 +95,11 @@ width=44
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 22:1 26:0
|
||||
1: 0:0 1:2 5:0 19:3 31:0
|
||||
@@ -103,8 +107,8 @@ Rows (column:palette):
|
||||
3: 0:0 2:2 5:0 19:3 31:0
|
||||
4: 0:0 19:3 31:0
|
||||
5: 0:0 4:2 5:0 6:2
|
||||
6: 0:0 24:1 25:0
|
||||
7: 0:0 21:4 27:0
|
||||
6: 0:0 24:4 25:0
|
||||
7: 0:0 21:5 27:0
|
||||
|
||||
width=30
|
||||
|
||||
@@ -118,10 +122,11 @@ width=30
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 4:1 24:0
|
||||
@@ -129,5 +134,5 @@ Rows (column:palette):
|
||||
3: 0:0 9:2 21:0
|
||||
4: 0:0 9:2 21:0
|
||||
5: 0:3
|
||||
6: 0:0 14:1 15:0
|
||||
7: 0:0 11:4 17:0
|
||||
6: 0:0 14:4 15:0
|
||||
7: 0:0 11:5 17:0
|
||||
|
||||
+19
-17
@@ -3,45 +3,47 @@ source: tui/src/analytics/plot_tests.rs
|
||||
expression: "snapshots.join(\"\\n\\n\")"
|
||||
---
|
||||
sign=1
|
||||
|
||||
1.75
|
||||
▇▇▇▇ —
|
||||
────────────
|
||||
▲
|
||||
14 15
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset)
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
1: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
2: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 1:1 5:0 8:2 9:0
|
||||
2: 0:3
|
||||
3: 0:0 8:2 9:0
|
||||
4: 0:0 1:3 3:0 7:4 9:0
|
||||
0: 0:0 4:1
|
||||
1: 0:1 1:2 5:1 8:3 9:1
|
||||
2: 0:0
|
||||
3: 0:1 8:4 9:1
|
||||
4: 0:1 1:0 3:1 7:5 9:1
|
||||
|
||||
sign=-1
|
||||
|
||||
—
|
||||
────────────
|
||||
▁▁▁▁
|
||||
|
||||
-1.75
|
||||
▲
|
||||
14 15
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset).reversed()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 8:1 9:0
|
||||
2: 0:2
|
||||
3: 0:0 1:3 5:0
|
||||
4: 0:0
|
||||
5: 0:0 8:1 9:0
|
||||
6: 0:0 1:2 3:0 7:4 9:0
|
||||
4: 0:2 5:0
|
||||
5: 0:0 8:4 9:0
|
||||
6: 0:0 1:2 3:0 7:5 9:0
|
||||
|
||||
+5
-4
@@ -14,10 +14,11 @@ expression: display(&rendered)
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
3: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
6: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 1:1 3:0 21:2 26:0
|
||||
@@ -25,5 +26,5 @@ Rows (column:palette):
|
||||
3: 0:0 1:1 3:0 18:4 30:0
|
||||
4: 0:0 18:4 30:0
|
||||
5: 0:0 2:1 3:0 4:1
|
||||
6: 0:0 23:2 24:0
|
||||
7: 0:0 20:5 26:0
|
||||
6: 0:0 23:5 24:0
|
||||
7: 0:0 20:6 26:0
|
||||
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
---
|
||||
source: tui/src/analytics/plot_tests.rs
|
||||
expression: text
|
||||
---
|
||||
711
|
||||
800 611
|
||||
511 █████████
|
||||
411 █████████ █████████
|
||||
311 ████████ █████████ █████████
|
||||
400 211 █████████ ████████ █████████ █████████
|
||||
111 ████████ █████████ ████████ █████████ █████████
|
||||
█████████ ████████ █████████ ████████ █████████ █████████
|
||||
████████ █████████ ████████ █████████ ████████ █████████ █████████
|
||||
0 ───────────────────────────────────────────────────────────────────────────────────────────────
|
||||
▲
|
||||
Jan 1 Jan 2 Jan 3 Jan 4 Jan 5 Jan 6 Jan 7
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 91:1 94:0
|
||||
1: 0:0 1:1 4:0 77:1 80:0
|
||||
2: 0:0 64:1 67:0 88:2 97:0
|
||||
3: 0:0 50:3 53:0 74:2 83:0 88:2 97:0
|
||||
4: 0:0 37:1 40:0 61:2 69:0 74:2 83:0 88:2 97:0
|
||||
5: 0:0 1:1 4:0 23:1 26:0 47:2 56:0 61:2 69:0 74:2 83:0 88:2 97:0
|
||||
6: 0:0 10:1 13:0 34:2 42:0 47:2 56:0 61:2 69:0 74:2 83:0 88:2 97:0
|
||||
7: 0:0 20:2 29:0 34:2 42:0 47:2 56:0 61:2 69:0 74:2 83:0 88:2 97:0
|
||||
8: 0:0 7:2 15:0 20:2 29:0 34:2 42:0 47:2 56:0 61:2 69:0 74:2 83:0 88:2 97:0
|
||||
9: 0:0 3:1 4:0 5:1
|
||||
10: 0:0 51:4 52:0
|
||||
11: 0:0 9:1 14:0 22:1 27:0 36:1 41:0 49:5 54:0 63:1 68:0 76:1 81:0 90:1 95:0
|
||||
+14
-13
@@ -3,9 +3,9 @@ source: tui/src/analytics/plot_tests.rs
|
||||
expression: display(&rendered)
|
||||
---
|
||||
|
||||
15
|
||||
15 8.00
|
||||
▅▅▅▅▅▅▅▅
|
||||
7.5 ████████
|
||||
7.5 ████████ 0.00
|
||||
████████ ▂▂▂▂▂▂▂▂ ▆▆▆▆▆▆▆▆
|
||||
0 ──────────────────────────────────────
|
||||
▄▄▄▄▄▄▄▄ ████████ ▂▂▂▂▂▂▂▂
|
||||
@@ -19,23 +19,24 @@ expression: display(&rendered)
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().fg(Color::Rgb(165, 165, 165)).bg(Color::Reset).underline_color(Color::Reset)
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset).reversed()
|
||||
5: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset)
|
||||
6: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
7: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
6: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
7: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
8: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 3:1 5:0
|
||||
2: 0:0 8:2 16:0
|
||||
3: 0:0 2:1 5:0 8:2 16:0
|
||||
4: 0:0 8:2 16:0 20:2 28:0 33:2 41:0
|
||||
5: 0:0 4:1 5:0 6:3
|
||||
1: 0:0 3:1 5:0 9:2 13:0
|
||||
2: 0:0 8:3 16:0
|
||||
3: 0:0 2:1 5:0 8:3 16:0 35:2 39:0
|
||||
4: 0:0 8:3 16:0 20:3 28:0 33:3 41:0
|
||||
5: 0:0 4:1 5:0 6:2
|
||||
6: 0:0 8:4 16:0 20:5 28:0 33:4 41:0
|
||||
7: 0:0
|
||||
8: 0:0 22:6 27:0
|
||||
9: 0:0 2:1 5:0
|
||||
10: 0:0
|
||||
11: 0:0 24:6 25:0
|
||||
12: 0:0 8:1 14:0 21:7 27:0 34:1 40:0
|
||||
11: 0:0 24:7 25:0
|
||||
12: 0:0 8:1 14:0 21:8 27:0 34:1 40:0
|
||||
|
||||
+14
-13
@@ -3,9 +3,9 @@ source: tui/src/analytics/plot_tests.rs
|
||||
expression: display(&rendered)
|
||||
---
|
||||
|
||||
15
|
||||
15 8.00
|
||||
▅▅▅▅▅▅▅▅
|
||||
7.5 ████████
|
||||
7.5 ████████ 0.00
|
||||
████████ ▂▂▂▂▂▂▂▂ ▆▆▆▆▆▆▆▆
|
||||
0 ──────────────────────────────────────
|
||||
▄▄▄▄▄▄▄▄ ████████ ▂▂▂▂▂▂▂▂
|
||||
@@ -19,23 +19,24 @@ expression: display(&rendered)
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().fg(Color::Rgb(76, 76, 76)).bg(Color::Reset).underline_color(Color::Reset)
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
3: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset).reversed()
|
||||
5: Style::new().magenta().bg(Color::Reset).underline_color(Color::Reset)
|
||||
6: Style::new().fg(Color::Rgb(0, 95, 135)).bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
7: Style::new().fg(Color::Rgb(0, 95, 135)).bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
6: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
7: Style::new().fg(Color::Rgb(0, 95, 135)).bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
8: Style::new().fg(Color::Rgb(0, 95, 135)).bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 3:1 5:0
|
||||
2: 0:0 8:2 16:0
|
||||
3: 0:0 2:1 5:0 8:2 16:0
|
||||
4: 0:0 8:2 16:0 20:2 28:0 33:2 41:0
|
||||
5: 0:0 4:1 5:0 6:3
|
||||
1: 0:0 3:1 5:0 9:2 13:0
|
||||
2: 0:0 8:3 16:0
|
||||
3: 0:0 2:1 5:0 8:3 16:0 35:2 39:0
|
||||
4: 0:0 8:3 16:0 20:3 28:0 33:3 41:0
|
||||
5: 0:0 4:1 5:0 6:2
|
||||
6: 0:0 8:4 16:0 20:5 28:0 33:4 41:0
|
||||
7: 0:0
|
||||
8: 0:0 22:6 27:0
|
||||
9: 0:0 2:1 5:0
|
||||
10: 0:0
|
||||
11: 0:0 24:6 25:0
|
||||
12: 0:0 8:1 14:0 21:7 27:0 34:1 40:0
|
||||
11: 0:0 24:7 25:0
|
||||
12: 0:0 8:1 14:0 21:8 27:0 34:1 40:0
|
||||
|
||||
+14
-12
@@ -6,7 +6,7 @@ sign=1
|
||||
100.00
|
||||
100 ████████████
|
||||
████████████
|
||||
50 ████████████
|
||||
50 ████████████ 0.01
|
||||
████████████ ▁▁▁▁▁▁▁▁▁▁▁▁
|
||||
0 ───────────────────────────────────────
|
||||
▲
|
||||
@@ -14,19 +14,20 @@ sign=1
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 11:1 17:0
|
||||
1: 0:0 1:2 4:0 8:3 20:0
|
||||
2: 0:0 8:3 20:0
|
||||
3: 0:0 2:2 4:0 8:3 20:0
|
||||
3: 0:0 2:2 4:0 8:3 20:0 31:2 35:0
|
||||
4: 0:0 8:3 20:0 28:3 40:0
|
||||
5: 0:0 3:2 4:0 5:2
|
||||
6: 0:0 14:1 15:0
|
||||
7: 0:0 11:4 17:0 30:2 36:0
|
||||
6: 0:0 14:4 15:0
|
||||
7: 0:0 11:5 17:0 30:2 36:0
|
||||
|
||||
sign=-1
|
||||
100.00
|
||||
@@ -36,7 +37,7 @@ sign=-1
|
||||
████████████
|
||||
0 ──────────────────────────────────────
|
||||
▇▇▇▇▇▇▇▇▇▇▇▇
|
||||
|
||||
-0.01
|
||||
|
||||
-100
|
||||
|
||||
@@ -45,11 +46,12 @@ sign=-1
|
||||
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
1: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
2: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset)
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).reversed()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
5: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
6: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0 12:1 18:0
|
||||
1: 0:0 2:2 5:0 9:3 21:0
|
||||
@@ -58,9 +60,9 @@ Rows (column:palette):
|
||||
4: 0:0 9:3 21:0
|
||||
5: 0:0 4:2 5:0 6:2
|
||||
6: 0:0 28:4 40:0
|
||||
7: 0:0
|
||||
7: 0:0 32:2 37:0
|
||||
8: 0:0
|
||||
9: 0:0 1:2 5:0
|
||||
10: 0:0
|
||||
11: 0:0 15:1 16:0
|
||||
12: 0:0 12:5 18:0 31:2 37:0
|
||||
11: 0:0 15:5 16:0
|
||||
12: 0:0 12:6 18:0 31:2 37:0
|
||||
|
||||
+5
-4
@@ -14,8 +14,9 @@ expression: display(&rendered)
|
||||
Palette:
|
||||
0: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset)
|
||||
1: Style::new().fg(Color::Reset).bg(Color::Reset).underline_color(Color::Reset).dim()
|
||||
2: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
2: Style::new().white().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
3: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold()
|
||||
4: Style::new().cyan().bg(Color::Reset).underline_color(Color::Reset).bold().underlined()
|
||||
Rows (column:palette):
|
||||
0: 0:0
|
||||
1: 0:0 3:1 4:0
|
||||
@@ -23,5 +24,5 @@ Rows (column:palette):
|
||||
3: 0:0 1:1 4:0
|
||||
4: 0:0 7:1 8:0 12:1 13:0 18:1 19:0 23:1 24:0 29:1 30:0 34:1 35:0 38:2 42:0
|
||||
5: 0:0 3:1 4:0 5:1
|
||||
6: 0:0 40:2 41:0
|
||||
7: 0:0 7:1 8:0 11:1 13:0 17:1 19:0 22:1 24:0 28:1 30:0 33:1 35:0 39:3 41:0
|
||||
6: 0:0 40:3 41:0
|
||||
7: 0:0 7:1 8:0 11:1 13:0 17:1 19:0 22:1 24:0 28:1 30:0 33:1 35:0 39:4 41:0
|
||||
|
||||
+62
-62
@@ -4,6 +4,7 @@ expression: "screens.join(\"\\n\")"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Total usage history 3 Messages 4 Plugins called 5 Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -29,9 +30,8 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -42,11 +42,11 @@ expression: "screens.join(\"\\n\")"
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" Total usage · relative units "
|
||||
" Approximate · may be delayed up to 6 hours "
|
||||
" 86 "
|
||||
" 100 ▃▃▃▃▃▃▃▃ ████████ ▁▁▁▁▁▁▁▁ "
|
||||
" ▃▃▃▃▃▃▃▃ ████████ ▆▆▆▆▆▆▆▆ ████████ ████████ "
|
||||
" 91 100 86 "
|
||||
" 100 73 ▃▃▃▃▃▃▃▃ 81 ████████ ▁▁▁▁▁▁▁▁ "
|
||||
" ▃▃▃▃▃▃▃▃ 64 ████████ ▆▆▆▆▆▆▆▆ ████████ ████████ "
|
||||
" ████████ ▆▆▆▆▆▆▆▆ ████████ ████████ ████████ ████████ "
|
||||
" 50 ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 50 20 ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ▁▁▁▁▁▁▁▁ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 0 ─────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
@@ -62,7 +62,7 @@ expression: "screens.join(\"\\n\")"
|
||||
" ● Other 10.5% "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -74,9 +74,9 @@ expression: "screens.join(\"\\n\")"
|
||||
" 574 reported messages "
|
||||
" "
|
||||
" 150 "
|
||||
" 103 "
|
||||
" ▇▇▇▇▇▇▇▇ ▆▆▆▆▆▆▆▆ "
|
||||
" 75 ▆▆▆▆▆▆▆▆ ████████ ▄▄▄▄▄▄▄▄ ▇▇▇▇▇▇▇▇ ████████ "
|
||||
" 107 103 "
|
||||
" 83 ▇▇▇▇▇▇▇▇ 75 85 ▆▆▆▆▆▆▆▆ "
|
||||
" 75 62 ▆▆▆▆▆▆▆▆ ████████ ▄▄▄▄▄▄▄▄ 59 ▇▇▇▇▇▇▇▇ ████████ "
|
||||
" ▇▇▇▇▇▇▇▇ ████████ ████████ ████████ ▆▆▆▆▆▆▆▆ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
@@ -93,7 +93,7 @@ expression: "screens.join(\"\\n\")"
|
||||
" ● Other 7 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -104,9 +104,9 @@ expression: "screens.join(\"\\n\")"
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" 186 calls "
|
||||
" "
|
||||
" 40 29 "
|
||||
" ▇▇▇▇▇▇▇▇ "
|
||||
" ████████ ████████ ▄▄▄▄▄▄▄▄ █████████ "
|
||||
" 40 34 29 29 "
|
||||
" ▇▇▇▇▇▇▇▇ 23 26 23 "
|
||||
" ████████ ████████ ▄▄▄▄▄▄▄▄ 22 █████████ "
|
||||
" 20 ████████ ████████ ████████ ████████ ▆▆▆▆▆▆▆▆ ████████ █████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ █████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ █████████ "
|
||||
@@ -124,7 +124,7 @@ expression: "screens.join(\"\\n\")"
|
||||
" ● Notion 4 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -137,9 +137,9 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" 20 "
|
||||
" "
|
||||
" 11 "
|
||||
" 10 ▁▁▁▁▁▁▁▁ ▆▆▆▆▆▆▆▆▆ "
|
||||
" ▆▆▆▆▆▆▆▆ ████████ ▆▆▆▆▆▆▆▆ ▃▃▃▃▃▃▃▃ █████████ "
|
||||
" 9 11 "
|
||||
" 10 8 6 ▁▁▁▁▁▁▁▁ 8 7 ▆▆▆▆▆▆▆▆▆ "
|
||||
" ▆▆▆▆▆▆▆▆ ████████ ▆▆▆▆▆▆▆▆ ▃▃▃▃▃▃▃▃ 5 █████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ▆▆▆▆▆▆▆▆ █████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ █████████ "
|
||||
" 0 ──────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
@@ -155,10 +155,11 @@ expression: "screens.join(\"\\n\")"
|
||||
" ● Debugging 1 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Total usage history 3 Messages 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -184,19 +185,19 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · s sort · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" ╭─ 1 Summary ──────────────────────────────────────────────────╮ ╭─ 2 Total usage history ──────────────────────────────────────╮ "
|
||||
" │ │ │ │ "
|
||||
" │ No history has been reported. │ │ 7d │ "
|
||||
" │ │ │ By feature │ "
|
||||
" │ │ │ Total usage · relative units │ "
|
||||
" │ │ │ 86 │ "
|
||||
" │ │ │ 100 ▃▃▃▃▃ ▂▂▂▂▂ ▆▆▆▆▆ ▄▄▄▄▄ █████ ▅▅▅▅▅▅ │ "
|
||||
" │ │ │ 73 64 91 81 100 86 │ "
|
||||
" │ │ │ 100 20 ▃▃▃▃▃ ▂▂▂▂▂ ▆▆▆▆▆ ▄▄▄▄▄ █████ ▅▅▅▅▅▅ │ "
|
||||
" │ │ │ ▃▃▃▃▃ █████ █████ █████ █████ █████ ██████ │ "
|
||||
" │ │ │ 0 ───────────────────────────────────────────────────────── │ "
|
||||
" │ │ │ ▲ │ "
|
||||
@@ -214,9 +215,9 @@ expression: "screens.join(\"\\n\")"
|
||||
" │ │ │ │ "
|
||||
" │ 7d │ │ 7d │ "
|
||||
" │ By model │ │ 186 calls │ "
|
||||
" │ 574 reported messages │ │ 29 │ "
|
||||
" │ 103 │ │ 40 ▅▅▅▅▅ ▁▁▁▁▁ ▃▃▃▃▃ ▂▂▂▂▂▂ ▁▁▁▁▁ ▃▃▃▃▃▃ │ "
|
||||
" │ 150 ▃▃▃▃▃ ▁▁▁▁▁ ▂▂▂▂▂▂ │ │ █████ █████ █████ ██████ █████ █████ ██████ │ "
|
||||
" │ 574 reported messages │ │ 34 23 29 26 22 23 29 │ "
|
||||
" │ 83 107 85 103 │ │ 40 ▅▅▅▅▅ ▁▁▁▁▁ ▃▃▃▃▃ ▂▂▂▂▂▂ ▁▁▁▁▁ ▃▃▃▃▃▃ │ "
|
||||
" │ 150 62 ▃▃▃▃▃ 75 59 ▁▁▁▁▁ ▂▂▂▂▂▂ │ │ █████ █████ █████ ██████ █████ █████ ██████ │ "
|
||||
" │ ▆▆▆▆▆ █████ █████ █████ ▆▆▆▆▆ █████ ██████ │ │ 0 ────────────────────────────────────────────────────────── │ "
|
||||
" │ 0 ───────────────────────────────────────────────────────── │ │ ▲ │ "
|
||||
" │ ▲ │ │ Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 │ "
|
||||
@@ -235,7 +236,7 @@ expression: "screens.join(\"\\n\")"
|
||||
" │ 7d │ │ No history has been reported. │ "
|
||||
" │ 54 uses │ │ │ "
|
||||
" │ 11 │ │ │ "
|
||||
" │ 20 │ │ │ "
|
||||
" │ 20 8 6 9 8 7 5 │ │ │ "
|
||||
" │ ▆▆▆▆▆ ▄▄▄▄▄ ▇▇▇▇▇ ▆▆▆▆▆▆ ▅▅▅▅▅ ▄▄▄▄▄ ██████ │ │ │ "
|
||||
" │ 0 ────────────────────────────────────────────────────────── │ │ │ "
|
||||
" │ ▲ │ │ │ "
|
||||
@@ -249,12 +250,12 @@ expression: "screens.join(\"\\n\")"
|
||||
" │ │ │ │ "
|
||||
" │ │ │ │ "
|
||||
" ╰────────────────────────────────────────────────────────────────╯ ╰────────────────────────────────────────────────────────────────╯ "
|
||||
" "
|
||||
" tab/1–6 section · s sort · enter/z maximize "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used 6 "
|
||||
" Top chats "
|
||||
" "
|
||||
@@ -280,9 +281,8 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -294,10 +294,10 @@ expression: "screens.join(\"\\n\")"
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" 431.00 credits "
|
||||
" "
|
||||
" 150 "
|
||||
" ▂▂▂▂▂▂▂▂ "
|
||||
" ▃▃▃▃▃▃▃▃ ████████ 64.00 "
|
||||
" 75 ▂▂▂▂▂▂▂▂ ████████ ████████ ████████ ▄▄▄▄▄▄▄▄ "
|
||||
" 150 109.00 "
|
||||
" 85.00 ▂▂▂▂▂▂▂▂ "
|
||||
" 57.00 ▃▃▃▃▃▃▃▃ 75.00 ████████ 64.00 "
|
||||
" 75 41.00 ▂▂▂▂▂▂▂▂ ████████ ████████ ████████ ▄▄▄▄▄▄▄▄ "
|
||||
" ▅▅▅▅▅▅▅▅ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 0 ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 0 ─────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
@@ -313,7 +313,7 @@ expression: "screens.join(\"\\n\")"
|
||||
" ● Web 9.00 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -325,12 +325,13 @@ expression: "screens.join(\"\\n\")"
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" All models · m change model "
|
||||
" 4.4M tokens "
|
||||
" "
|
||||
" 1M ▂▂▂▂▂▂▂▂ 731K "
|
||||
" ▆▆▆▆▆▆▆▆ ▃▃▃▃▃▃▃▃ ████████ ▅▅▅▅▅▅▅▅ "
|
||||
" 500K ████████ ▅▅▅▅▅▅▅▅ ████████ ████████ ████████ ████████ "
|
||||
" 850K "
|
||||
" 1M 773.5K 688.5K 731K "
|
||||
" 620.5K 544K ▅▅▅▅▅▅▅▅ ▁▁▁▁▁▁▁▁ ████████ ▃▃▃▃▃▃▃▃ "
|
||||
" ▅▅▅▅▅▅▅▅ ▂▂▂▂▂▂▂▂ ████████ ████████ ████████ ████████ "
|
||||
" 500K 170K ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ▆▆▆▆▆▆▆▆ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 0 ────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" ▲ "
|
||||
" Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 "
|
||||
@@ -341,10 +342,9 @@ expression: "screens.join(\"\\n\")"
|
||||
" ● Cached input 602,000 "
|
||||
" ● Uncached input 86,000 "
|
||||
" ● Output 43,000 "
|
||||
" Updated Sep 2 16:00 UTC "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close Updated Sep 2 16:00 UTC "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -355,9 +355,9 @@ expression: "screens.join(\"\\n\")"
|
||||
" ▎ Plugins called "
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" 186 calls "
|
||||
" "
|
||||
" 40 29 "
|
||||
" ████████ ▂▂▂▂▂▂▂▂ ▂▂▂▂▂▂▂▂▂ "
|
||||
" 34 "
|
||||
" 40 29 29 "
|
||||
" ████████ 23 ▂▂▂▂▂▂▂▂ 26 22 23 ▂▂▂▂▂▂▂▂▂ "
|
||||
" ████████ ▃▃▃▃▃▃▃▃ ████████ ▇▇▇▇▇▇▇▇ ▂▂▂▂▂▂▂▂ ▃▃▃▃▃▃▃▃ █████████ "
|
||||
" 20 ████████ ████████ ████████ ████████ ████████ ████████ █████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ █████████ "
|
||||
@@ -375,7 +375,7 @@ expression: "screens.join(\"\\n\")"
|
||||
" ● Notion 4 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -389,8 +389,8 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" 20 "
|
||||
" 11 "
|
||||
" ▂▂▂▂▂▂▂▂▂ "
|
||||
" 10 ▃▃▃▃▃▃▃▃ ▅▅▅▅▅▅▅▅ ▃▃▃▃▃▃▃▃ █████████ "
|
||||
" 8 9 8 7 ▂▂▂▂▂▂▂▂▂ "
|
||||
" 10 ▃▃▃▃▃▃▃▃ 6 ▅▅▅▅▅▅▅▅ ▃▃▃▃▃▃▃▃ 5 █████████ "
|
||||
" ████████ ▆▆▆▆▆▆▆▆ ████████ ████████ ████████ ▄▄▄▄▄▄▄▄ █████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ █████████ "
|
||||
" 0 ──────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
@@ -406,10 +406,11 @@ expression: "screens.join(\"\\n\")"
|
||||
" ● Debugging 1 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 "
|
||||
" Top chats] "
|
||||
" "
|
||||
@@ -435,19 +436,19 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" ╭─ 1 Summary ──────────────────────────────────────────────────╮ ╭─ 2 Credits usage history ────────────────────────────────────╮ "
|
||||
" │ │ │ │ "
|
||||
" │ No history has been reported. │ │ 7d │ "
|
||||
" │ │ │ By product │ "
|
||||
" │ │ │ 431.00 credits │ "
|
||||
" │ │ │ │ "
|
||||
" │ │ │ 150 ▁▁▁▁▁ ▃▃▃▃▃ 64.00 │ "
|
||||
" │ │ │ 85.00 109.00 │ "
|
||||
" │ │ │ 150 41.00 57.00 ▁▁▁▁▁ 75.00 ▃▃▃▃▃ 64.00 │ "
|
||||
" │ │ │ 0 ▄▄▄▄▄ ▆▆▆▆▆ █████ █████ █████ ▆▆▆▆▆▆ │ "
|
||||
" │ │ │ 0 ───────────────────────────────────────────────────────── │ "
|
||||
" │ │ │ ▲ │ "
|
||||
@@ -465,9 +466,9 @@ expression: "screens.join(\"\\n\")"
|
||||
" │ │ │ │ "
|
||||
" │ 7d · All models │ │ 7d │ "
|
||||
" │ By token type │ │ 186 calls │ "
|
||||
" │ 4.4M tokens │ │ 29 │ "
|
||||
" │ 731K │ │ 40 ▅▅▅▅▅ ▁▁▁▁▁ ▃▃▃▃▃ ▂▂▂▂▂▂ ▁▁▁▁▁ ▃▃▃▃▃▃ │ "
|
||||
" │ 1M ▁▁▁▁▁ ▄▄▄▄▄ ▃▃▃▃▃ ▅▅▅▅▅ ▃▃▃▃▃ │ │ █████ █████ █████ ██████ █████ █████ ██████ │ "
|
||||
" │ 4.4M tokens │ │ 34 23 29 26 22 23 29 │ "
|
||||
" │ 620.5K 544K 773.5K 688.5K 850K 731K │ │ 40 ▅▅▅▅▅ ▁▁▁▁▁ ▃▃▃▃▃ ▂▂▂▂▂▂ ▁▁▁▁▁ ▃▃▃▃▃▃ │ "
|
||||
" │ 1M 170K ▁▁▁▁▁ ▄▄▄▄▄ ▃▃▃▃▃ ▅▅▅▅▅ ▃▃▃▃▃ │ │ █████ █████ █████ ██████ █████ █████ ██████ │ "
|
||||
" │ ▂▂▂▂▂ █████ █████ █████ █████ █████ █████ │ │ 0 ────────────────────────────────────────────────────────── │ "
|
||||
" │ 0 ──────────────────────────────────────────────────────── │ │ ▲ │ "
|
||||
" │ ▲ │ │ Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 │ "
|
||||
@@ -486,7 +487,7 @@ expression: "screens.join(\"\\n\")"
|
||||
" │ 7d │ │ 30d active · lifetime credits │ "
|
||||
" │ 54 uses │ │ │ "
|
||||
" │ 11 │ │ Q3 planning analysis 120.00 │ "
|
||||
" │ 20 │ │ Refactor billing usage 113.00 │ "
|
||||
" │ 20 8 6 9 8 7 5 │ │ Refactor billing usage 113.00 │ "
|
||||
" │ ▆▆▆▆▆ ▄▄▄▄▄ ▇▇▇▇▇ ▆▆▆▆▆▆ ▅▅▅▅▅ ▄▄▄▄▄ ██████ │ │ Other usage 109.00 │ "
|
||||
" │ 0 ────────────────────────────────────────────────────────── │ │ Launch readiness review 85.00 │ "
|
||||
" │ ▲ │ │ Plan the week 0.00 │ "
|
||||
@@ -500,6 +501,5 @@ expression: "screens.join(\"\\n\")"
|
||||
" │ │ │ │ "
|
||||
" │ │ │ │ "
|
||||
" ╰────────────────────────────────────────────────────────────────╯ ╰────────────────────────────────────────────────────────────────╯ "
|
||||
" "
|
||||
" tab/1–6 section · enter/z maximize "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+1
-1
@@ -6,6 +6,7 @@ expression: error
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" Sign in again to view Analytics. "
|
||||
" "
|
||||
" "
|
||||
@@ -24,5 +25,4 @@ expression: error
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+5
-5
@@ -4,6 +4,7 @@ expression: "format!(\"{dollars}\\n{narrow}\")"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 "
|
||||
" Top chats] "
|
||||
" "
|
||||
@@ -29,12 +30,12 @@ expression: "format!(\"{dollars}\\n{narrow}\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" Summary Credits usage history Token "
|
||||
" usage history Plugins called Skills "
|
||||
" used [Top chats] "
|
||||
@@ -58,8 +59,7 @@ expression: "format!(\"{dollars}\\n{narrow}\")"
|
||||
" Local chats · excludes archived chats "
|
||||
" and subagent usage "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ "
|
||||
" row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc "
|
||||
" back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
" "
|
||||
|
||||
+14
-14
@@ -12,12 +12,13 @@ expression: "format!(\"{all}\\n{filtered}\")"
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" All models · m change model "
|
||||
" 4.4M tokens "
|
||||
" "
|
||||
" 1M ▂▂▂▂▂▂▂▂ 731K "
|
||||
" ▆▆▆▆▆▆▆▆ ▃▃▃▃▃▃▃▃ ████████ ▅▅▅▅▅▅▅▅ "
|
||||
" 500K ████████ ▅▅▅▅▅▅▅▅ ████████ ████████ ████████ ████████ "
|
||||
" 850K "
|
||||
" 1M 773.5K 688.5K 731K "
|
||||
" 620.5K 544K ▅▅▅▅▅▅▅▅ ▁▁▁▁▁▁▁▁ ████████ ▃▃▃▃▃▃▃▃ "
|
||||
" ▅▅▅▅▅▅▅▅ ▂▂▂▂▂▂▂▂ ████████ ████████ ████████ ████████ "
|
||||
" 500K 170K ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ▆▆▆▆▆▆▆▆ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 0 ────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" ▲ "
|
||||
" Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 "
|
||||
@@ -28,10 +29,9 @@ expression: "format!(\"{all}\\n{filtered}\")"
|
||||
" ● Cached input 602,000 "
|
||||
" ● Uncached input 86,000 "
|
||||
" ● Output 43,000 "
|
||||
" Updated Sep 2 16:00 UTC "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close Updated Sep 2 16:00 UTC "
|
||||
|
||||
" Analytics · Live account · analytics@example.test "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -43,12 +43,13 @@ expression: "format!(\"{all}\\n{filtered}\")"
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" GPT-5.5 · m change model "
|
||||
" 4.4M tokens "
|
||||
" "
|
||||
" 1M ▂▂▂▂▂▂▂▂ 731K "
|
||||
" ▆▆▆▆▆▆▆▆ ▃▃▃▃▃▃▃▃ ████████ ▅▅▅▅▅▅▅▅ "
|
||||
" 500K ████████ ▅▅▅▅▅▅▅▅ ████████ ████████ ████████ ████████ "
|
||||
" 850K "
|
||||
" 1M 773.5K 688.5K 731K "
|
||||
" 620.5K 544K ▅▅▅▅▅▅▅▅ ▁▁▁▁▁▁▁▁ ████████ ▃▃▃▃▃▃▃▃ "
|
||||
" ▅▅▅▅▅▅▅▅ ▂▂▂▂▂▂▂▂ ████████ ████████ ████████ ████████ "
|
||||
" 500K 170K ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ▆▆▆▆▆▆▆▆ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 0 ────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" ▲ "
|
||||
" Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 "
|
||||
@@ -59,7 +60,6 @@ expression: "format!(\"{all}\\n{filtered}\")"
|
||||
" ● Cached input 602,000 "
|
||||
" ● Uncached input 86,000 "
|
||||
" ● Output 43,000 "
|
||||
" Updated Sep 2 16:00 UTC "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close Updated Sep 2 16:00 UTC "
|
||||
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
---
|
||||
source: tui/src/analytics/account_layout_tests.rs
|
||||
expression: tall
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
" "
|
||||
" 1 Summary [2 Total usage history] 3 Messages 4 Plugins called 5 Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Total usage history By feature "
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" Total usage · relative units "
|
||||
" Approximate · may be delayed up to 6 hours "
|
||||
" 100 "
|
||||
" 100 ██████████ "
|
||||
" 91 ██████████ "
|
||||
" ▂▂▂▂▂▂▂▂▂▂ ██████████ "
|
||||
" ██████████ ██████████ 86 "
|
||||
" ██████████ 81 ██████████ ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ ▂▂▂▂▂▂▂▂▂▂ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ "
|
||||
" 73 ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▇▇▇▇▇▇▇▇▇▇ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ 64 ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 50 ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 20 ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 0 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" ▲ "
|
||||
" Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 "
|
||||
" "
|
||||
" ──────────────────────────────────────────────────────── "
|
||||
" Sep 2 · 86 usage units "
|
||||
" Feature Share "
|
||||
" ● Feature 1 10.0% "
|
||||
" ● Feature 2 10.0% "
|
||||
" ● Feature 3 10.0% "
|
||||
" ● Feature 4 10.0% "
|
||||
" ● Feature 5 10.0% "
|
||||
" ● Feature 6 10.0% "
|
||||
" ● Feature 7 10.0% "
|
||||
" ● Feature 8 10.0% "
|
||||
" ● Feature 9 10.0% "
|
||||
" ● Feature 10 10.0% "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · esc back · q close Updated Sep 2 16:00 UTC "
|
||||
+4
-4
@@ -4,6 +4,7 @@ expression: terminal.backend().to_string()
|
||||
---
|
||||
" Analytics · Live account · analytics@example.test "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -20,7 +21,7 @@ expression: terminal.backend().to_string()
|
||||
" 12.3K — — — — "
|
||||
" Lifetime tokens Peak tokens Longest chat Current streak Longest streak "
|
||||
" "
|
||||
" Token activity [Daily] Weekly Cumulative "
|
||||
" Token activity Daily "
|
||||
" Last 12 months "
|
||||
" "
|
||||
" Token activity history unavailable "
|
||||
@@ -39,6 +40,5 @@ expression: terminal.backend().to_string()
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–1 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–1 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
+3
-3
@@ -10,8 +10,8 @@ expression: "screen(&mut view, 110, 24)"
|
||||
" ▎ Credits usage history By product "
|
||||
" ────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" 431.00 credits "
|
||||
" "
|
||||
" 150 ▁▁▁▁▁▁▁▁▁ ▃▃▃▃▃▃▃▃▃ 64.00 "
|
||||
" 85.00 109.00 "
|
||||
" 150 41.00 57.00 ▁▁▁▁▁▁▁▁▁ 75.00 ▃▃▃▃▃▃▃▃▃ 64.00 "
|
||||
" 0 ▄▄▄▄▄▄▄▄▄ ▆▆▆▆▆▆▆▆▆▆ █████████ ██████████ █████████ ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" 0 ───────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" ▲ "
|
||||
@@ -25,4 +25,4 @@ expression: "screen(&mut view, 110, 24)"
|
||||
" ● IDE extension 10.00 "
|
||||
" ● Web 9.00 "
|
||||
" tab/1–5 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
+7
-7
@@ -4,6 +4,7 @@ expression: "screens.join(\"\\n\")"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -31,12 +32,12 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" Summary Credits usage history Token usage history "
|
||||
" Plugins called Skills used [Top chats] "
|
||||
" "
|
||||
@@ -58,18 +59,18 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" Refactor billing usage 113.00 "
|
||||
" Other usage 109.00 "
|
||||
" Launch readiness review 85.00 "
|
||||
" "
|
||||
" Showing 1–4 of 5 chats "
|
||||
" Showing 1–3 of 5 chats "
|
||||
" Local chats · excludes archived chats and subagent "
|
||||
" usage "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter "
|
||||
" details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -97,6 +98,5 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+2
-2
@@ -4,6 +4,7 @@ expression: output
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -29,6 +30,5 @@ expression: output
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+9
-9
@@ -4,6 +4,7 @@ expression: "screens.join(\"\\n\")"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -19,16 +20,16 @@ expression: "screens.join(\"\\n\")"
|
||||
" Chat 06 120.00 "
|
||||
" Chat 07 120.00 "
|
||||
" Chat 08 120.00 "
|
||||
" Chat 09 120.00 "
|
||||
" "
|
||||
" Showing 1–9 of 30 chats "
|
||||
" Showing 1–8 of 30 chats "
|
||||
" Local chats · excludes archived chats and subagent usage "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -36,7 +37,6 @@ expression: "screens.join(\"\\n\")"
|
||||
" Active in past 30 days · sorted by lifetime credits "
|
||||
" "
|
||||
" Chat Lifetime credits "
|
||||
" Chat 22 120.00 "
|
||||
" Chat 23 120.00 "
|
||||
" Chat 24 120.00 "
|
||||
" Chat 25 120.00 "
|
||||
@@ -46,14 +46,15 @@ expression: "screens.join(\"\\n\")"
|
||||
" Chat 29 120.00 "
|
||||
" › Chat 30 120.00 "
|
||||
" "
|
||||
" Showing 22–30 of 30 chats "
|
||||
" Showing 23–30 of 30 chats "
|
||||
" Local chats · excludes archived chats and subagent usage "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -61,7 +62,6 @@ expression: "screens.join(\"\\n\")"
|
||||
" Active in past 30 days · sorted by lifetime credits "
|
||||
" "
|
||||
" Chat Lifetime credits "
|
||||
" Chat 26 120.00 "
|
||||
" Chat 27 120.00 "
|
||||
" Chat 28 120.00 "
|
||||
" Chat 29 120.00 "
|
||||
@@ -71,8 +71,8 @@ expression: "screens.join(\"\\n\")"
|
||||
" GPT-5.6-Sol high standard 120.00 "
|
||||
" "
|
||||
" "
|
||||
" Showing 26–30 of 30 chats "
|
||||
" Showing 27–30 of 30 chats "
|
||||
" Local chats · excludes archived chats and subagent usage "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+2
-2
@@ -4,6 +4,7 @@ expression: "screen(&mut view, 110, 24)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -23,6 +24,5 @@ expression: "screen(&mut view, 110, 24)"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+4
-4
@@ -4,6 +4,7 @@ expression: "screens.join(\"\\n\")"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -27,13 +28,12 @@ expression: "screens.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" │ 27 28 29 30 31 1 2 │ │ │ "
|
||||
" "
|
||||
" │ │ │ Sep 2 · 29 calls │ "
|
||||
" │ Sep 2 · 731,000 tokens │ │ ● Slack 10 │ "
|
||||
" │ ● Cached input 602,000 │ │ ● Figma 10 │ "
|
||||
@@ -45,7 +45,7 @@ expression: "screens.join(\"\\n\")"
|
||||
" │ │ │ │ "
|
||||
" │ 7d │ │ 30d active · lifetime credits │ "
|
||||
" │ 54 uses │ │ │ "
|
||||
" │ 11 │ │ Chat usage unavailable — │ "
|
||||
" │ 8 6 9 8 7 5 11 │ │ Chat usage unavailable — │ "
|
||||
" │ 20 ▃▃▃▃ ▂▂▂▂ ▃▃▃▃ ▃▃▃▃ ▂▂▂▂ ▂▂▂▂ ▄▄▄▄ │ │ │ "
|
||||
" │ 0 ─────────────────────────────────────────── │ │ Local chats · excludes subagents │ "
|
||||
" │ ▲ │ │ Some estimates unavailable │ "
|
||||
|
||||
+3
-3
@@ -31,7 +31,7 @@ expression: "screenshots.join(\"\\n\")"
|
||||
" ● Example 12,280,365,226 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -62,7 +62,7 @@ expression: "screenshots.join(\"\\n\")"
|
||||
" ● Example 9,749 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -93,4 +93,4 @@ expression: "screenshots.join(\"\\n\")"
|
||||
" ● Example 2,901 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
+3
-3
@@ -4,6 +4,7 @@ expression: "screen(&mut view, 110, 30)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Total usage history 3 Messages 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -25,10 +26,9 @@ expression: "screen(&mut view, 110, 30)"
|
||||
" high · fast · codex "
|
||||
" "
|
||||
" Chat usage unavailable — — — "
|
||||
" Chat usage unavailable — — — "
|
||||
" "
|
||||
" Showing 1–3 of 3 chats "
|
||||
" Showing 1–2 of 3 chats "
|
||||
" Local chats · includes discovered descendants · excludes archived roots "
|
||||
" "
|
||||
" tab/1–6 section · s sort · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+2
-2
@@ -4,6 +4,7 @@ expression: "screen(&mut view, 58, 30)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" Summary Total usage history Messages Plugins called "
|
||||
" Skills used [Top chats] "
|
||||
" "
|
||||
@@ -28,7 +29,6 @@ expression: "screen(&mut view, 58, 30)"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · s sort · z dashboard · ↑/↓ row · "
|
||||
" enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+2
-2
@@ -4,6 +4,7 @@ expression: "screen(&mut view, 90, 30)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Total usage history 3 Messages 4 Plugins called 5 Skills used [6 Top "
|
||||
" chats] "
|
||||
" "
|
||||
@@ -29,6 +30,5 @@ expression: "screen(&mut view, 90, 30)"
|
||||
" Showing 1–3 of 3 chats "
|
||||
" Local chats · includes discovered descendants · excludes archived roots "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · s sort · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
+9
-9
@@ -10,8 +10,8 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" │ No history has been reported. │ │ 7d │ "
|
||||
" │ │ │ By feature │ "
|
||||
" │ │ │ Total usage · relative units │ "
|
||||
" │ │ │ 86 │ "
|
||||
" │ │ │ 100 ▃▃▃▃▃ ▂▂▂▂▂▂ ▆▆▆▆▆ ▄▄▄▄▄▄ █████ ▅▅▅▅▅▅ │ "
|
||||
" │ │ │ 73 64 91 81 100 86 │ "
|
||||
" │ │ │ 100 20 ▃▃▃▃▃ ▂▂▂▂▂▂ ▆▆▆▆▆ ▄▄▄▄▄▄ █████ ▅▅▅▅▅▅ │ "
|
||||
" │ │ │ ▃▃▃▃▃ █████ ██████ █████ ██████ █████ ██████ │ "
|
||||
" │ │ │ 0 ─────────────────────────────────────────────────────────── │ "
|
||||
" │ │ │ ▲ │ "
|
||||
@@ -29,9 +29,9 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" │ │ │ │ "
|
||||
" │ 7d │ │ 7d │ "
|
||||
" │ By model │ │ 186 calls │ "
|
||||
" │ 574 reported messages │ │ 29 │ "
|
||||
" │ 103 │ │ 40 ▅▅▅▅▅ ▁▁▁▁▁▁ ▃▃▃▃▃ ▂▂▂▂▂▂ ▁▁▁▁▁▁ ▃▃▃▃▃▃ │ "
|
||||
" │ 150 ▃▃▃▃▃▃ ▁▁▁▁▁ ▂▂▂▂▂▂ │ │ █████ ██████ █████ ██████ █████ ██████ ██████ │ "
|
||||
" │ 574 reported messages │ │ 34 23 29 26 22 23 29 │ "
|
||||
" │ 83 107 85 103 │ │ 40 ▅▅▅▅▅ ▁▁▁▁▁▁ ▃▃▃▃▃ ▂▂▂▂▂▂ ▁▁▁▁▁▁ ▃▃▃▃▃▃ │ "
|
||||
" │ 150 62 ▃▃▃▃▃▃ 75 59 ▁▁▁▁▁ ▂▂▂▂▂▂ │ │ █████ ██████ █████ ██████ █████ ██████ ██████ │ "
|
||||
" │ ▆▆▆▆▆ █████ ██████ █████ ▆▆▆▆▆▆ █████ ██████ │ │ 0 ──────────────────────────────────────────────────────────── │ "
|
||||
" │ 0 ─────────────────────────────────────────────────────────── │ │ ▲ │ "
|
||||
" │ ▲ │ │ Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 │ "
|
||||
@@ -50,7 +50,7 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" │ 7d │ │ No history has been reported. │ "
|
||||
" │ 54 uses │ │ │ "
|
||||
" │ 11 │ │ │ "
|
||||
" │ 20 │ │ │ "
|
||||
" │ 20 8 6 9 8 7 5 │ │ │ "
|
||||
" │ ▆▆▆▆▆ ▄▄▄▄▄▄ ▇▇▇▇▇ ▆▆▆▆▆▆ ▅▅▅▅▅ ▄▄▄▄▄▄ ██████ │ │ │ "
|
||||
" │ 0 ──────────────────────────────────────────────────────────── │ │ │ "
|
||||
" │ ▲ │ │ │ "
|
||||
@@ -65,7 +65,7 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" │ │ │ │ "
|
||||
" ╰──────────────────────────────────────────────────────────────────╯ ╰──────────────────────────────────────────────────────────────────╯ "
|
||||
" tab/1–6 section · enter/z maximize "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -92,7 +92,7 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" │ 7d │ "
|
||||
" │ By feature │ "
|
||||
" │ Total usage · relative units │ "
|
||||
" │ 100 │ "
|
||||
" │ 20 73 64 91 81 100 86 │ "
|
||||
" │ 100 ▁▁▁▁▁ ▅▅▅▅▅ ▅▅▅▅▅▅ ▇▇▇▇▇ ▆▆▆▆▆▆ █████ ▆▆▆▆▆▆ │ "
|
||||
" │ 0 ─────────────────────────────────────────────────────────── │ "
|
||||
" │ ▲ │ "
|
||||
@@ -109,7 +109,7 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" │ 7d │ "
|
||||
" │ By model │ "
|
||||
" │ 574 reported messages │ "
|
||||
" │ 103 │ "
|
||||
" │ 62 83 107 75 59 85 103 │ "
|
||||
" │ 150 ▃▃▃▃▃ ▄▄▄▄▄ ▅▅▅▅▅▅ ▄▄▄▄▄ ▃▃▃▃▃▃ ▄▄▄▄▄ ▅▅▅▅▅▅ │ "
|
||||
" │ 0 ─────────────────────────────────────────────────────────── │ "
|
||||
" tab/1–6 section · enter/z maximize "
|
||||
|
||||
+4
-4
@@ -4,6 +4,7 @@ expression: "screen(&mut view, 64, 60)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [Summary] Total usage history Messages Plugins called "
|
||||
" Skills used Top chats "
|
||||
" "
|
||||
@@ -25,7 +26,7 @@ expression: "screen(&mut view, 64, 60)"
|
||||
" 158 days 160 days "
|
||||
" Current streak Longest streak "
|
||||
" "
|
||||
" Token activity Daily Weekly [Cumulative] "
|
||||
" Token activity Cumulative "
|
||||
" Last 12 months "
|
||||
" "
|
||||
" Mar Apr May Jun Jul Aug "
|
||||
@@ -59,6 +60,5 @@ expression: "screen(&mut view, 64, 60)"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
+4
-4
@@ -4,13 +4,13 @@ expression: "screen(&mut view, 140, 44)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Total usage history 3 Messages 4 Plugins called 5 Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" Example User "
|
||||
" @example.user "
|
||||
" Plus "
|
||||
@@ -18,7 +18,7 @@ expression: "screen(&mut view, 140, 44)"
|
||||
" 142.3B 7B 44h 7m 158 days 160 days "
|
||||
" Lifetime tokens Peak tokens Longest chat Current streak Longest streak "
|
||||
" "
|
||||
" Token activity [Daily] Weekly Cumulative "
|
||||
" Token activity Daily "
|
||||
" Last 12 months "
|
||||
" "
|
||||
" Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug "
|
||||
@@ -44,5 +44,5 @@ expression: "screen(&mut view, 140, 44)"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
+2
-2
@@ -4,6 +4,7 @@ expression: "screen(&mut view, 144, 64)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" ╭─ ▸ 1 Summary ────────────────────────────────────────────────────╮ ╭─ 2 Total usage history ────────────────────────────────────────╮ "
|
||||
" │ │ │ │ "
|
||||
" │ Example User │ │ 7d │ "
|
||||
@@ -63,6 +64,5 @@ expression: "screen(&mut view, 144, 64)"
|
||||
" │ │ │ │ "
|
||||
" │ │ │ │ "
|
||||
" ╰──────────────────────────────────────────────────────────────────╯ ╰──────────────────────────────────────────────────────────────────╯ "
|
||||
" "
|
||||
" tab/1–6 section · enter/z maximize "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
+4
-4
@@ -4,6 +4,7 @@ expression: rendered
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -19,7 +20,7 @@ expression: rendered
|
||||
" 0 — — — — "
|
||||
" Lifetime tokens Peak tokens Longest chat Current streak Longest streak "
|
||||
" "
|
||||
" Token activity [Daily] Weekly Cumulative "
|
||||
" Token activity Daily "
|
||||
" Last 12 months "
|
||||
" "
|
||||
" Token activity history unavailable "
|
||||
@@ -39,6 +40,5 @@ expression: rendered
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–5 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–5 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
+1
-1
@@ -4,10 +4,10 @@ expression: "screen(&mut view, 64, 18)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [Summary] Total usage history Messages Plugins called "
|
||||
" Skills used Top chats "
|
||||
" "
|
||||
" Most used reasoning high · 26% "
|
||||
" Skills explored 147 "
|
||||
" Total skills used 13,190 "
|
||||
" Total chats 21,482 "
|
||||
|
||||
+4
-4
@@ -4,13 +4,13 @@ expression: "screen(&mut view, 110, 44)"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Total usage history 3 Messages 4 Plugins called 5 Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
" ────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" Example User "
|
||||
" @example.user "
|
||||
" Plus "
|
||||
@@ -18,7 +18,7 @@ expression: "screen(&mut view, 110, 44)"
|
||||
" 142.3B 7B 44h 7m 158 days 160 days "
|
||||
" Lifetime tokens Peak tokens Longest chat Current streak Longest streak "
|
||||
" "
|
||||
" Token activity Daily [Weekly] Cumulative "
|
||||
" Token activity Weekly "
|
||||
" Last 12 months "
|
||||
" "
|
||||
" Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug "
|
||||
@@ -44,5 +44,5 @@ expression: "screen(&mut view, 110, 44)"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
|
||||
+43
-43
@@ -15,20 +15,21 @@ Text:
|
||||
" 4.4M tokens "
|
||||
" "
|
||||
" 1M "
|
||||
" "
|
||||
" ▂▂▂▂▂▂▂▂▂▂ "
|
||||
" ██████████ 731K "
|
||||
" ▇▇▇▇▇▇▇▇▇▇ ██████████ ▁▁▁▁▁▁▁▁▁▁ "
|
||||
" ██████████ ▃▃▃▃▃▃▃▃▃▃ ██████████ ██████████ "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 850K "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ "
|
||||
" 773.5K ██████████ "
|
||||
" ▅▅▅▅▅▅▅▅▅▅ 688.5K ██████████ 731K "
|
||||
" ██████████ ██████████ ▇▇▇▇▇▇▇▇▇▇ "
|
||||
" 620.5K ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▆▆▆▆▆▆▆▆▆▆ 544K ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ▂▂▂▂▂▂▂▂▂▂ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 500K ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 170K ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -42,10 +43,9 @@ Text:
|
||||
" ● Cached input 602,000 "
|
||||
" ● Uncached input 86,000 "
|
||||
" ● Output 43,000 "
|
||||
" Updated Sep 2 16:00 UTC "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close Updated Sep 2 16:00 UTC "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -54,9 +54,9 @@ Palette (foreground|background|underline|modifiers):
|
||||
4: Reset|Reset|Reset|DIM
|
||||
5: Green|Reset|Reset|NONE
|
||||
6: Magenta|Reset|Reset|NONE
|
||||
7: Cyan|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
9: White|Reset|Reset|BOLD
|
||||
7: White|Reset|Reset|BOLD
|
||||
8: Cyan|Reset|Reset|NONE
|
||||
9: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0 2:3 6:0 11:2 34:0
|
||||
@@ -69,34 +69,34 @@ Rows (column:palette):
|
||||
8: 0:0 2:3 13:0
|
||||
9: 0:0
|
||||
10: 0:0 5:2 7:0
|
||||
11: 0:0
|
||||
11: 0:0 91:4 95:0
|
||||
12: 0:0 89:5 99:0
|
||||
13: 0:0 89:5 99:0 107:3 111:0
|
||||
14: 0:0 57:5 67:0 89:6 99:0 105:5 115:0
|
||||
15: 0:0 57:6 67:0 73:5 83:0 89:7 99:0 105:5 115:0
|
||||
16: 0:0 26:5 36:0 57:6 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
17: 0:0 26:6 36:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
18: 0:0 26:6 36:0 42:5 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
19: 0:0 3:2 7:0 26:7 36:0 42:6 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
20: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
21: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
22: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
23: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
24: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
25: 0:0 10:7 20:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 10:7 20:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 10:7 20:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
28: 0:0 6:2 7:0 8:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 12:2 18:0 27:2 33:0 43:2 49:0 59:2 65:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 24:0
|
||||
34: 0:0 2:1 12:0 52:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
38: 0:0 2:2 25:0
|
||||
13: 0:0 59:4 65:0 89:5 99:0
|
||||
14: 0:0 57:5 67:0 74:4 80:0 89:6 99:0 107:7 111:0
|
||||
15: 0:0 57:6 67:0 89:6 99:0 105:5 115:0
|
||||
16: 0:0 27:4 33:0 57:6 67:0 73:5 83:0 89:8 99:0 105:6 115:0
|
||||
17: 0:0 26:5 36:0 44:4 48:0 57:8 67:0 73:6 83:0 89:8 99:0 105:6 115:0
|
||||
18: 0:0 26:6 36:0 42:5 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
19: 0:0 3:2 7:0 26:8 36:0 42:6 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
20: 0:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
21: 0:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
22: 0:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
23: 0:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
24: 0:0 13:4 17:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
25: 0:0 10:5 20:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
26: 0:0 10:8 20:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
27: 0:0 10:8 20:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
28: 0:0 10:8 20:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
29: 0:0 6:2 7:0 8:4 118:0
|
||||
30: 0:0 109:3 110:0
|
||||
31: 0:0 12:2 18:0 27:2 33:0 43:2 49:0 59:2 65:0 74:2 80:0 91:2 96:0 107:9 112:0
|
||||
32: 0:0
|
||||
33: 0:0 2:4 58:0
|
||||
34: 0:0 2:1 7:3 24:0
|
||||
35: 0:0 2:1 12:0 52:1 58:0
|
||||
36: 0:0 2:8 4:0
|
||||
37: 0:0 2:6 4:0
|
||||
38: 0:0 2:5 4:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 43:2 53:9 56:2 64:9 65:2 118:0
|
||||
40: 0:0 2:7 9:2 20:7 21:2 34:7 37:2 44:7 49:2 118:0
|
||||
41: 0:0 2:7 3:2 12:7 13:2 22:7 23:2 34:7 37:2 45:7 46:2 118:0
|
||||
|
||||
+32
-32
@@ -14,13 +14,13 @@ Text:
|
||||
" 186 calls "
|
||||
" "
|
||||
" 40 "
|
||||
" "
|
||||
" 34 "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ "
|
||||
" ██████████ "
|
||||
" ██████████ 29 "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ 29 29 "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ 26 ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ ██████████ ▂▂▂▂▂▂▂▂▂▂ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ 23 ██████████ ██████████ 22 23 ██████████ "
|
||||
" ██████████ ▇▇▇▇▇▇▇▇▇▇ ██████████ ██████████ ▃▃▃▃▃▃▃▃▃▃ ▇▇▇▇▇▇▇▇▇▇ ██████████ "
|
||||
" 20 ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,18 +45,18 @@ Text:
|
||||
" ● Notion 4 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
2: Rgb(165, 165, 165)|Reset|Reset|NONE
|
||||
3: Cyan|Reset|Reset|BOLD
|
||||
4: Reset|Reset|Reset|DIM
|
||||
5: Green|Reset|Reset|NONE
|
||||
6: Magenta|Reset|Reset|NONE
|
||||
7: Cyan|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
9: White|Reset|Reset|BOLD
|
||||
5: White|Reset|Reset|BOLD
|
||||
6: Green|Reset|Reset|NONE
|
||||
7: Magenta|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|NONE
|
||||
9: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0 2:3 6:0 11:2 34:0
|
||||
@@ -68,35 +68,35 @@ Rows (column:palette):
|
||||
7: 0:0 2:3 11:0
|
||||
8: 0:0
|
||||
9: 0:0 3:2 5:0
|
||||
10: 0:0
|
||||
10: 0:0 12:4 14:0
|
||||
11: 0:0
|
||||
12: 0:0
|
||||
13: 0:0 108:3 110:0
|
||||
14: 0:0 9:5 19:0
|
||||
15: 0:0 9:5 19:0
|
||||
16: 0:0 9:5 19:0 41:5 51:0 105:5 115:0
|
||||
17: 0:0 9:6 19:0 41:5 51:0 105:5 115:0
|
||||
18: 0:0 3:2 5:0 9:6 19:0 41:5 51:0 57:5 67:0 105:5 115:0
|
||||
19: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:5 99:0 105:6 115:0
|
||||
20: 0:0 9:6 19:0 25:6 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:6 99:0 105:6 115:0
|
||||
21: 0:0 9:6 19:0 25:6 35:0 41:6 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:6 115:0
|
||||
22: 0:0 9:7 19:0 25:6 35:0 41:6 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:6 115:0
|
||||
23: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
24: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
25: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
13: 0:0 44:4 46:0 108:5 110:0
|
||||
14: 0:0 9:6 19:0 60:4 62:0
|
||||
15: 0:0 9:6 19:0
|
||||
16: 0:0 9:6 19:0 28:4 30:0 41:6 51:0 76:4 78:0 92:4 94:0 105:6 115:0
|
||||
17: 0:0 9:7 19:0 41:6 51:0 105:6 115:0
|
||||
18: 0:0 3:2 5:0 9:7 19:0 41:6 51:0 57:6 67:0 105:6 115:0
|
||||
19: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
20: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
21: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
22: 0:0 9:8 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
23: 0:0 9:8 19:0 25:7 35:0 41:8 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:8 115:0
|
||||
24: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:7 83:0 89:8 99:0 105:8 115:0
|
||||
25: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
26: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
27: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
28: 0:0 4:2 5:0 6:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 10:2 16:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
30: 0:0 10:2 16:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:9 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 18:0
|
||||
34: 0:0 2:1 8:0 53:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
35: 0:0 2:8 4:0
|
||||
36: 0:0 2:7 4:0
|
||||
37: 0:0 2:6 4:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 44:5 49:2 118:0
|
||||
41: 0:0 2:5 3:2 12:5 13:2 24:5 27:2 35:5 36:2 118:0
|
||||
|
||||
+25
-25
@@ -14,17 +14,17 @@ Text:
|
||||
" 17.2K credits "
|
||||
" "
|
||||
" 5K "
|
||||
" "
|
||||
" 4,360.00 "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ "
|
||||
" ██████████ "
|
||||
" ██████████ "
|
||||
" ██████████ "
|
||||
" ▇▇▇▇▇▇▇▇▇▇ ██████████ "
|
||||
" 3,400.00 ██████████ "
|
||||
" ▇▇▇▇▇▇▇▇▇▇ 3,000.00 ██████████ "
|
||||
" ██████████ ▃▃▃▃▃▃▃▃▃▃ ██████████ "
|
||||
" ██████████ ██████████ ██████████ 2,560.00 "
|
||||
" 2.5K ██████████ ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ "
|
||||
" 2.5K 2,280.00 ██████████ ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ "
|
||||
" ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 1,640.00 ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Web 360.00 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -54,9 +54,9 @@ Palette (foreground|background|underline|modifiers):
|
||||
4: Reset|Reset|Reset|DIM
|
||||
5: Green|Reset|Reset|NONE
|
||||
6: Magenta|Reset|Reset|NONE
|
||||
7: Cyan|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
9: White|Reset|Reset|BOLD
|
||||
7: White|Reset|Reset|BOLD
|
||||
8: Cyan|Reset|Reset|NONE
|
||||
9: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0 2:3 6:0 11:2 34:0
|
||||
@@ -68,35 +68,35 @@ Rows (column:palette):
|
||||
7: 0:0 2:3 15:0
|
||||
8: 0:0
|
||||
9: 0:0 5:2 7:0
|
||||
10: 0:0
|
||||
10: 0:0 89:4 97:0
|
||||
11: 0:0
|
||||
12: 0:0
|
||||
13: 0:0
|
||||
14: 0:0 89:5 99:0
|
||||
15: 0:0 89:5 99:0
|
||||
14: 0:0 58:4 66:0 89:5 99:0
|
||||
15: 0:0 73:4 81:0 89:5 99:0
|
||||
16: 0:0 89:6 99:0
|
||||
17: 0:0 57:5 67:0 89:6 99:0 105:3 113:0
|
||||
18: 0:0 3:2 7:0 57:5 67:0 73:5 83:0 89:6 99:0
|
||||
17: 0:0 57:5 67:0 89:6 99:0 105:7 113:0
|
||||
18: 0:0 3:2 7:0 42:4 50:0 57:5 67:0 73:5 83:0 89:6 99:0
|
||||
19: 0:0 57:6 67:0 73:5 83:0 89:6 99:0
|
||||
20: 0:0 57:6 67:0 73:6 83:0 89:6 99:0 105:5 115:0
|
||||
20: 0:0 26:4 34:0 57:6 67:0 73:6 83:0 89:6 99:0 105:5 115:0
|
||||
21: 0:0 42:5 52:0 57:6 67:0 73:6 83:0 89:6 99:0 105:6 115:0
|
||||
22: 0:0 42:6 52:0 57:6 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
23: 0:0 26:5 36:0 42:6 52:0 57:7 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
24: 0:0 26:6 36:0 42:6 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:6 115:0
|
||||
25: 0:0 26:6 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 15:4 16:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
22: 0:0 42:6 52:0 57:6 67:0 73:6 83:0 89:8 99:0 105:6 115:0
|
||||
23: 0:0 26:5 36:0 42:6 52:0 57:8 67:0 73:6 83:0 89:8 99:0 105:6 115:0
|
||||
24: 0:0 26:6 36:0 42:6 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:6 115:0
|
||||
25: 0:0 26:6 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
26: 0:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
27: 0:0 15:4 16:0 26:8 36:0 42:8 52:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
28: 0:0 6:2 7:0 8:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 12:2 18:0 27:2 33:0 43:2 49:0 59:2 65:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
30: 0:0 12:2 18:0 27:2 33:0 43:2 49:0 59:2 65:0 74:2 80:0 91:2 96:0 107:9 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 26:0
|
||||
34: 0:0 2:1 9:0 51:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
35: 0:0 2:8 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
40: 0:0 2:7 9:2 20:7 21:2 34:7 37:2 44:7 49:2 118:0
|
||||
41: 0:0 2:7 3:2 12:7 13:2 24:7 27:2 35:7 36:2 118:0
|
||||
|
||||
+18
-18
@@ -6,6 +6,7 @@ expression: snapshot
|
||||
Text:
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -43,9 +44,8 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -56,26 +56,26 @@ Palette (foreground|background|underline|modifiers):
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0
|
||||
2: 0:0 2:2 94:3 107:0
|
||||
3: 0:0
|
||||
4: 0:0 2:3 13:0
|
||||
5: 0:0 2:4 118:0
|
||||
6: 0:0 2:2 53:0
|
||||
7: 0:0
|
||||
8: 0:0 2:1 8:0 82:1 98:0
|
||||
9: 0:0 2:3 24:0 92:3 98:0
|
||||
10: 0:0 2:4 98:0
|
||||
11: 0:0 2:2 82:0 91:1 98:0
|
||||
12: 0:0 2:1 54:2 82:0
|
||||
13: 0:0
|
||||
2: 0:0
|
||||
3: 0:0 2:2 94:3 107:0
|
||||
4: 0:0
|
||||
5: 0:0 2:3 13:0
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0 2:2 53:0
|
||||
8: 0:0
|
||||
9: 0:0 2:1 8:0 82:1 98:0
|
||||
10: 0:0 2:3 24:0 92:3 98:0
|
||||
11: 0:0 2:4 98:0
|
||||
12: 0:0 2:2 82:0 91:1 98:0
|
||||
13: 0:0 2:1 54:2 82:0
|
||||
14: 0:0
|
||||
15: 0:0
|
||||
16: 0:0
|
||||
17: 0:0
|
||||
18: 0:0
|
||||
19: 0:0 2:2 24:0
|
||||
20: 0:0 2:2 58:0
|
||||
21: 0:0
|
||||
19: 0:0
|
||||
20: 0:0 2:2 24:0
|
||||
21: 0:0 2:2 58:0
|
||||
22: 0:0
|
||||
23: 0:0
|
||||
24: 0:0
|
||||
@@ -95,4 +95,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 44:5 49:2 118:0
|
||||
41: 0:0 2:5 3:2 14:5 23:2 33:5 36:2 44:5 45:2 118:0
|
||||
41: 0:0 2:5 3:2 14:5 17:2 25:5 26:2 118:0
|
||||
|
||||
+28
-28
@@ -22,11 +22,11 @@ Text:
|
||||
" "
|
||||
" 11 "
|
||||
" ▃▃▃▃▃▃▃▃▃▃ "
|
||||
" 10 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ "
|
||||
" ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 10 9 ██████████ "
|
||||
" 8 ▄▄▄▄▄▄▄▄▄▄ 8 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▄▄▄▄▄▄▄▄▄▄ 7 ██████████ "
|
||||
" ██████████ 6 ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ "
|
||||
" ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ 5 ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ▆▆▆▆▆▆▆▆▆▆ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,18 +45,18 @@ Text:
|
||||
" ● Debugging 1 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
2: Rgb(165, 165, 165)|Reset|Reset|NONE
|
||||
3: Cyan|Reset|Reset|BOLD
|
||||
4: Reset|Reset|Reset|DIM
|
||||
5: Green|Reset|Reset|NONE
|
||||
6: Magenta|Reset|Reset|NONE
|
||||
7: Cyan|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
9: White|Reset|Reset|BOLD
|
||||
5: White|Reset|Reset|BOLD
|
||||
6: Green|Reset|Reset|NONE
|
||||
7: Magenta|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|NONE
|
||||
9: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0 2:3 6:0 11:2 34:0
|
||||
@@ -74,29 +74,29 @@ Rows (column:palette):
|
||||
13: 0:0
|
||||
14: 0:0
|
||||
15: 0:0
|
||||
16: 0:0 108:3 110:0
|
||||
16: 0:0 108:5 110:0
|
||||
17: 0:0
|
||||
18: 0:0 3:2 5:0
|
||||
19: 0:0 105:5 115:0
|
||||
20: 0:0 41:5 51:0 105:5 115:0
|
||||
21: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 105:6 115:0
|
||||
22: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 73:5 83:0 105:6 115:0
|
||||
23: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:5 99:0 105:6 115:0
|
||||
24: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
25: 0:0 9:7 19:0 25:6 35:0 41:6 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
18: 0:0 3:2 5:0 45:4 46:0
|
||||
19: 0:0 13:4 14:0 61:4 62:0 105:6 115:0
|
||||
20: 0:0 41:6 51:0 77:4 78:0 105:6 115:0
|
||||
21: 0:0 9:6 19:0 29:4 30:0 41:6 51:0 57:6 67:0 105:7 115:0
|
||||
22: 0:0 9:6 19:0 41:6 51:0 57:6 67:0 73:6 83:0 93:4 94:0 105:7 115:0
|
||||
23: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
24: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:8 115:0
|
||||
25: 0:0 9:8 19:0 25:7 35:0 41:7 51:0 57:8 67:0 73:7 83:0 89:8 99:0 105:8 115:0
|
||||
26: 0:0 9:8 19:0 25:7 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
27: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
28: 0:0 4:2 5:0 6:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 10:2 16:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
30: 0:0 10:2 16:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:9 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 17:0
|
||||
34: 0:0 2:1 7:0 54:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
35: 0:0 2:8 4:0
|
||||
36: 0:0 2:7 4:0
|
||||
37: 0:0 2:6 4:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 44:5 49:2 118:0
|
||||
41: 0:0 2:5 3:2 12:5 13:2 24:5 27:2 35:5 36:2 118:0
|
||||
|
||||
+10
-10
@@ -6,6 +6,7 @@ expression: snapshot
|
||||
Text:
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -43,9 +44,8 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -56,11 +56,11 @@ Palette (foreground|background|underline|modifiers):
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0
|
||||
2: 0:0 2:3 15:2 107:0
|
||||
3: 0:0
|
||||
4: 0:0 2:3 11:0
|
||||
5: 0:0 2:4 118:0
|
||||
6: 0:0
|
||||
2: 0:0
|
||||
3: 0:0 2:3 15:2 107:0
|
||||
4: 0:0
|
||||
5: 0:0 2:3 11:0
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0
|
||||
8: 0:0
|
||||
9: 0:0
|
||||
@@ -94,5 +94,5 @@ Rows (column:palette):
|
||||
37: 0:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 118:0
|
||||
41: 0:0 2:5 3:2 11:5 12:2 23:5 32:2 42:5 45:2 53:5 54:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 118:0
|
||||
41: 0:0 2:5 3:2 11:5 12:2 23:5 26:2 34:5 35:2 118:0
|
||||
|
||||
+35
-35
@@ -13,13 +13,13 @@ Text:
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" Total usage · relative units "
|
||||
" Approximate · may be delayed up to 6 hours "
|
||||
" "
|
||||
" 100 ██████████ "
|
||||
" 100 "
|
||||
" 100 91 ██████████ "
|
||||
" ▃▃▃▃▃▃▃▃▃▃ ██████████ 86 "
|
||||
" ██████████ ██████████ ▃▃▃▃▃▃▃▃▃▃ "
|
||||
" ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ "
|
||||
" ██████████ 81 ██████████ ▃▃▃▃▃▃▃▃▃▃ "
|
||||
" 73 ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ 64 ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -27,7 +27,7 @@ Text:
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 20 ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Other 10.5% "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -53,10 +53,10 @@ Palette (foreground|background|underline|modifiers):
|
||||
3: Cyan|Reset|Reset|BOLD
|
||||
4: Reset|Reset|Reset|DIM
|
||||
5: Green|Reset|Reset|NONE
|
||||
6: Magenta|Reset|Reset|NONE
|
||||
7: Cyan|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
9: White|Reset|Reset|BOLD
|
||||
6: White|Reset|Reset|BOLD
|
||||
7: Magenta|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|NONE
|
||||
9: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0 2:3 6:0 11:2 34:0
|
||||
@@ -67,36 +67,36 @@ Rows (column:palette):
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0 2:2 30:0
|
||||
8: 0:0 2:2 44:0
|
||||
9: 0:0
|
||||
10: 0:0 3:2 6:0
|
||||
11: 0:0 89:5 99:0 108:3 110:0
|
||||
12: 0:0 89:5 99:0
|
||||
13: 0:0 57:5 67:0 89:5 99:0
|
||||
14: 0:0 57:5 67:0 89:6 99:0 105:5 115:0
|
||||
15: 0:0 57:6 67:0 73:5 83:0 89:6 99:0 105:5 115:0
|
||||
16: 0:0 25:5 35:0 57:6 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
17: 0:0 25:5 35:0 57:7 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
18: 0:0 25:6 35:0 41:5 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
19: 0:0 4:2 6:0 25:6 35:0 41:6 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
20: 0:0 25:7 35:0 41:6 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
21: 0:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
22: 0:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
23: 0:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
24: 0:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
25: 0:0 9:6 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
9: 0:0 92:4 95:0
|
||||
10: 0:0 3:2 6:0 60:4 62:0
|
||||
11: 0:0 89:5 99:0 108:6 110:0
|
||||
12: 0:0 76:4 78:0 89:5 99:0
|
||||
13: 0:0 28:4 30:0 57:5 67:0 89:5 99:0
|
||||
14: 0:0 57:5 67:0 89:7 99:0 105:5 115:0
|
||||
15: 0:0 44:4 46:0 57:7 67:0 73:5 83:0 89:7 99:0 105:5 115:0
|
||||
16: 0:0 25:5 35:0 57:7 67:0 73:7 83:0 89:8 99:0 105:7 115:0
|
||||
17: 0:0 25:5 35:0 57:8 67:0 73:7 83:0 89:8 99:0 105:7 115:0
|
||||
18: 0:0 25:7 35:0 41:5 51:0 57:8 67:0 73:7 83:0 89:8 99:0 105:8 115:0
|
||||
19: 0:0 4:2 6:0 25:7 35:0 41:7 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
20: 0:0 25:8 35:0 41:7 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
21: 0:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
22: 0:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
23: 0:0 13:4 15:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
24: 0:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
25: 0:0 9:7 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
26: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
27: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
28: 0:0 5:2 6:0 7:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 11:2 17:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
30: 0:0 11:2 17:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:9 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 24:0
|
||||
34: 0:0 2:1 9:0 53:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
35: 0:0 2:8 4:0
|
||||
36: 0:0 2:7 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 43:2 53:9 56:2 64:9 65:2 118:0
|
||||
40: 0:0 2:6 9:2 20:6 21:2 34:6 37:2 44:6 49:2 118:0
|
||||
41: 0:0 2:6 3:2 12:6 13:2 22:6 23:2 34:6 37:2 45:6 46:2 118:0
|
||||
|
||||
+32
-32
@@ -14,13 +14,13 @@ Text:
|
||||
" 186 calls "
|
||||
" "
|
||||
" 40 "
|
||||
" "
|
||||
" 34 "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ "
|
||||
" ██████████ "
|
||||
" ██████████ 29 "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ 29 29 "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ 26 ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ ██████████ ▂▂▂▂▂▂▂▂▂▂ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ 23 ██████████ ██████████ 22 23 ██████████ "
|
||||
" ██████████ ▇▇▇▇▇▇▇▇▇▇ ██████████ ██████████ ▃▃▃▃▃▃▃▃▃▃ ▇▇▇▇▇▇▇▇▇▇ ██████████ "
|
||||
" 20 ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,18 +45,18 @@ Text:
|
||||
" ● Notion 4 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
2: Rgb(165, 165, 165)|Reset|Reset|NONE
|
||||
3: Cyan|Reset|Reset|BOLD
|
||||
4: Reset|Reset|Reset|DIM
|
||||
5: Green|Reset|Reset|NONE
|
||||
6: Magenta|Reset|Reset|NONE
|
||||
7: Cyan|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
9: White|Reset|Reset|BOLD
|
||||
5: White|Reset|Reset|BOLD
|
||||
6: Green|Reset|Reset|NONE
|
||||
7: Magenta|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|NONE
|
||||
9: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0 2:3 6:0 11:2 34:0
|
||||
@@ -68,35 +68,35 @@ Rows (column:palette):
|
||||
7: 0:0 2:3 11:0
|
||||
8: 0:0
|
||||
9: 0:0 3:2 5:0
|
||||
10: 0:0
|
||||
10: 0:0 12:4 14:0
|
||||
11: 0:0
|
||||
12: 0:0
|
||||
13: 0:0 108:3 110:0
|
||||
14: 0:0 9:5 19:0
|
||||
15: 0:0 9:5 19:0
|
||||
16: 0:0 9:5 19:0 41:5 51:0 105:5 115:0
|
||||
17: 0:0 9:6 19:0 41:5 51:0 105:5 115:0
|
||||
18: 0:0 3:2 5:0 9:6 19:0 41:5 51:0 57:5 67:0 105:5 115:0
|
||||
19: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:5 99:0 105:6 115:0
|
||||
20: 0:0 9:6 19:0 25:6 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:6 99:0 105:6 115:0
|
||||
21: 0:0 9:6 19:0 25:6 35:0 41:6 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:6 115:0
|
||||
22: 0:0 9:7 19:0 25:6 35:0 41:6 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:6 115:0
|
||||
23: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
24: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
25: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
13: 0:0 44:4 46:0 108:5 110:0
|
||||
14: 0:0 9:6 19:0 60:4 62:0
|
||||
15: 0:0 9:6 19:0
|
||||
16: 0:0 9:6 19:0 28:4 30:0 41:6 51:0 76:4 78:0 92:4 94:0 105:6 115:0
|
||||
17: 0:0 9:7 19:0 41:6 51:0 105:6 115:0
|
||||
18: 0:0 3:2 5:0 9:7 19:0 41:6 51:0 57:6 67:0 105:6 115:0
|
||||
19: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
20: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
21: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
22: 0:0 9:8 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
23: 0:0 9:8 19:0 25:7 35:0 41:8 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:8 115:0
|
||||
24: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:7 83:0 89:8 99:0 105:8 115:0
|
||||
25: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
26: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
27: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
28: 0:0 4:2 5:0 6:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 10:2 16:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
30: 0:0 10:2 16:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:9 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 18:0
|
||||
34: 0:0 2:1 8:0 53:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
35: 0:0 2:8 4:0
|
||||
36: 0:0 2:7 4:0
|
||||
37: 0:0 2:6 4:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 44:5 49:2 118:0
|
||||
41: 0:0 2:5 3:2 12:5 13:2 24:5 27:2 35:5 36:2 118:0
|
||||
|
||||
+8
-8
@@ -6,6 +6,7 @@ expression: snapshot
|
||||
Text:
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Total usage history 3 Messages 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -43,9 +44,8 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · s sort · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -56,11 +56,11 @@ Palette (foreground|background|underline|modifiers):
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0
|
||||
2: 0:0 2:2 81:3 94:0
|
||||
3: 0:0
|
||||
4: 0:0 2:3 13:0
|
||||
5: 0:0 2:4 118:0
|
||||
6: 0:0
|
||||
2: 0:0
|
||||
3: 0:0 2:2 81:3 94:0
|
||||
4: 0:0
|
||||
5: 0:0 2:3 13:0
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0
|
||||
8: 0:0
|
||||
9: 0:0
|
||||
@@ -95,4 +95,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 29:5 30:2 43:5 46:2 53:5 58:2 118:0
|
||||
41: 0:0 2:5 3:2 14:5 23:2 33:5 36:2 44:5 45:2 118:0
|
||||
41: 0:0 2:5 3:2 14:5 17:2 25:5 26:2 118:0
|
||||
|
||||
+30
-30
@@ -17,13 +17,13 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" 103 "
|
||||
" 107 103 "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ "
|
||||
" ██████████ ██████████ "
|
||||
" ██████████ ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▆▆▆▆▆▆▆▆▆▆ ██████████ "
|
||||
" 83 ██████████ 85 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ 75 ▆▆▆▆▆▆▆▆▆▆ ██████████ "
|
||||
" 75 ██████████ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 62 ██████████ ██████████ ██████████ 59 ██████████ ██████████ "
|
||||
" ▆▆▆▆▆▆▆▆▆▆ ██████████ ██████████ ██████████ ▃▃▃▃▃▃▃▃▃▃ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,18 +45,18 @@ Text:
|
||||
" ● Other 7 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
2: Rgb(165, 165, 165)|Reset|Reset|NONE
|
||||
3: Cyan|Reset|Reset|BOLD
|
||||
4: Reset|Reset|Reset|DIM
|
||||
5: Green|Reset|Reset|NONE
|
||||
6: Magenta|Reset|Reset|NONE
|
||||
7: Cyan|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
9: White|Reset|Reset|BOLD
|
||||
5: White|Reset|Reset|BOLD
|
||||
6: Green|Reset|Reset|NONE
|
||||
7: Magenta|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|NONE
|
||||
9: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0 2:3 6:0 11:2 34:0
|
||||
@@ -71,32 +71,32 @@ Rows (column:palette):
|
||||
10: 0:0
|
||||
11: 0:0
|
||||
12: 0:0
|
||||
13: 0:0 108:3 111:0
|
||||
13: 0:0 44:4 47:0 108:5 111:0
|
||||
14: 0:0
|
||||
15: 0:0 41:5 51:0
|
||||
16: 0:0 41:5 51:0 105:5 115:0
|
||||
17: 0:0 41:6 51:0 105:6 115:0
|
||||
18: 0:0 4:2 6:0 25:5 35:0 41:6 51:0 89:5 99:0 105:6 115:0
|
||||
19: 0:0 25:6 35:0 41:6 51:0 57:5 67:0 89:6 99:0 105:6 115:0
|
||||
20: 0:0 25:6 35:0 41:7 51:0 57:6 67:0 89:6 99:0 105:7 115:0
|
||||
21: 0:0 9:6 19:0 25:6 35:0 41:7 51:0 57:6 67:0 73:5 83:0 89:6 99:0 105:7 115:0
|
||||
22: 0:0 9:6 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
23: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
24: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
25: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
15: 0:0 41:6 51:0
|
||||
16: 0:0 28:4 30:0 41:6 51:0 92:4 94:0 105:6 115:0
|
||||
17: 0:0 41:7 51:0 60:4 62:0 105:7 115:0
|
||||
18: 0:0 4:2 6:0 25:6 35:0 41:7 51:0 89:6 99:0 105:7 115:0
|
||||
19: 0:0 13:4 15:0 25:7 35:0 41:7 51:0 57:6 67:0 76:4 78:0 89:7 99:0 105:7 115:0
|
||||
20: 0:0 25:7 35:0 41:8 51:0 57:7 67:0 89:7 99:0 105:8 115:0
|
||||
21: 0:0 9:7 19:0 25:7 35:0 41:8 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:8 115:0
|
||||
22: 0:0 9:7 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:7 83:0 89:8 99:0 105:8 115:0
|
||||
23: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:7 83:0 89:8 99:0 105:8 115:0
|
||||
24: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
25: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
26: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
27: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
28: 0:0 5:2 6:0 7:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 11:2 17:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
30: 0:0 11:2 17:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:9 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 22:0
|
||||
34: 0:0 2:1 7:0 50:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
35: 0:0 2:8 4:0
|
||||
36: 0:0 2:7 4:0
|
||||
37: 0:0 2:6 4:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 43:2 53:9 56:2 64:9 65:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 44:5 49:2 118:0
|
||||
41: 0:0 2:5 3:2 12:5 13:2 22:5 23:2 34:5 37:2 45:5 46:2 118:0
|
||||
|
||||
+28
-28
@@ -22,11 +22,11 @@ Text:
|
||||
" "
|
||||
" 11 "
|
||||
" ▃▃▃▃▃▃▃▃▃▃ "
|
||||
" 10 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ "
|
||||
" ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 10 9 ██████████ "
|
||||
" 8 ▄▄▄▄▄▄▄▄▄▄ 8 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▄▄▄▄▄▄▄▄▄▄ 7 ██████████ "
|
||||
" ██████████ 6 ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ "
|
||||
" ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ 5 ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ▆▆▆▆▆▆▆▆▆▆ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,18 +45,18 @@ Text:
|
||||
" ● Debugging 1 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
2: Rgb(165, 165, 165)|Reset|Reset|NONE
|
||||
3: Cyan|Reset|Reset|BOLD
|
||||
4: Reset|Reset|Reset|DIM
|
||||
5: Green|Reset|Reset|NONE
|
||||
6: Magenta|Reset|Reset|NONE
|
||||
7: Cyan|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
9: White|Reset|Reset|BOLD
|
||||
5: White|Reset|Reset|BOLD
|
||||
6: Green|Reset|Reset|NONE
|
||||
7: Magenta|Reset|Reset|NONE
|
||||
8: Cyan|Reset|Reset|NONE
|
||||
9: Cyan|Reset|Reset|BOLD | UNDERLINED
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0 2:3 6:0 11:2 34:0
|
||||
@@ -74,29 +74,29 @@ Rows (column:palette):
|
||||
13: 0:0
|
||||
14: 0:0
|
||||
15: 0:0
|
||||
16: 0:0 108:3 110:0
|
||||
16: 0:0 108:5 110:0
|
||||
17: 0:0
|
||||
18: 0:0 3:2 5:0
|
||||
19: 0:0 105:5 115:0
|
||||
20: 0:0 41:5 51:0 105:5 115:0
|
||||
21: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 105:6 115:0
|
||||
22: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 73:5 83:0 105:6 115:0
|
||||
23: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:5 99:0 105:6 115:0
|
||||
24: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
25: 0:0 9:7 19:0 25:6 35:0 41:6 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
18: 0:0 3:2 5:0 45:4 46:0
|
||||
19: 0:0 13:4 14:0 61:4 62:0 105:6 115:0
|
||||
20: 0:0 41:6 51:0 77:4 78:0 105:6 115:0
|
||||
21: 0:0 9:6 19:0 29:4 30:0 41:6 51:0 57:6 67:0 105:7 115:0
|
||||
22: 0:0 9:6 19:0 41:6 51:0 57:6 67:0 73:6 83:0 93:4 94:0 105:7 115:0
|
||||
23: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
24: 0:0 9:7 19:0 25:6 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:8 115:0
|
||||
25: 0:0 9:8 19:0 25:7 35:0 41:7 51:0 57:8 67:0 73:7 83:0 89:8 99:0 105:8 115:0
|
||||
26: 0:0 9:8 19:0 25:7 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
27: 0:0 9:8 19:0 25:8 35:0 41:8 51:0 57:8 67:0 73:8 83:0 89:8 99:0 105:8 115:0
|
||||
28: 0:0 4:2 5:0 6:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 10:2 16:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
30: 0:0 10:2 16:0 26:2 32:0 42:2 48:0 58:2 64:0 74:2 80:0 91:2 96:0 107:9 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 17:0
|
||||
34: 0:0 2:1 7:0 54:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
35: 0:0 2:8 4:0
|
||||
36: 0:0 2:7 4:0
|
||||
37: 0:0 2:6 4:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 44:5 49:2 118:0
|
||||
41: 0:0 2:5 3:2 12:5 13:2 24:5 27:2 35:5 36:2 118:0
|
||||
|
||||
+10
-10
@@ -6,6 +6,7 @@ expression: snapshot
|
||||
Text:
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Total usage history 3 Messages 4 Plugins called 5 Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -43,9 +44,8 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -56,11 +56,11 @@ Palette (foreground|background|underline|modifiers):
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0
|
||||
2: 0:0 2:3 15:2 94:0
|
||||
3: 0:0
|
||||
4: 0:0 2:3 11:0
|
||||
5: 0:0 2:4 118:0
|
||||
6: 0:0
|
||||
2: 0:0
|
||||
3: 0:0 2:3 15:2 94:0
|
||||
4: 0:0
|
||||
5: 0:0 2:3 11:0
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0
|
||||
8: 0:0
|
||||
9: 0:0
|
||||
@@ -94,5 +94,5 @@ Rows (column:palette):
|
||||
37: 0:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 118:0
|
||||
41: 0:0 2:5 3:2 11:5 12:2 23:5 32:2 42:5 45:2 53:5 54:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 118:0
|
||||
41: 0:0 2:5 3:2 11:5 12:2 23:5 26:2 34:5 35:2 118:0
|
||||
|
||||
+31
-31
@@ -15,20 +15,21 @@ Text:
|
||||
" 4.4M tokens "
|
||||
" "
|
||||
" 1M "
|
||||
" "
|
||||
" ▂▂▂▂▂▂▂▂▂▂ "
|
||||
" ██████████ 731K "
|
||||
" ▇▇▇▇▇▇▇▇▇▇ ██████████ ▁▁▁▁▁▁▁▁▁▁ "
|
||||
" ██████████ ▃▃▃▃▃▃▃▃▃▃ ██████████ ██████████ "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 850K "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ "
|
||||
" 773.5K ██████████ "
|
||||
" ▅▅▅▅▅▅▅▅▅▅ 688.5K ██████████ 731K "
|
||||
" ██████████ ██████████ ▇▇▇▇▇▇▇▇▇▇ "
|
||||
" 620.5K ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▆▆▆▆▆▆▆▆▆▆ 544K ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ▂▂▂▂▂▂▂▂▂▂ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 500K ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 170K ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -42,10 +43,9 @@ Text:
|
||||
" ● Cached input 602,000 "
|
||||
" ● Uncached input 86,000 "
|
||||
" ● Output 43,000 "
|
||||
" Updated Sep 2 16:00 UTC "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close Updated Sep 2 16:00 UTC "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -69,34 +69,34 @@ Rows (column:palette):
|
||||
8: 0:0 2:3 13:0
|
||||
9: 0:0
|
||||
10: 0:0 5:2 7:0
|
||||
11: 0:0
|
||||
11: 0:0 91:4 95:0
|
||||
12: 0:0 89:5 99:0
|
||||
13: 0:0 89:5 99:0 107:3 111:0
|
||||
14: 0:0 57:5 67:0 89:6 99:0 105:5 115:0
|
||||
15: 0:0 57:6 67:0 73:5 83:0 89:7 99:0 105:5 115:0
|
||||
16: 0:0 26:5 36:0 57:6 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
17: 0:0 26:6 36:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
13: 0:0 59:4 65:0 89:5 99:0
|
||||
14: 0:0 57:5 67:0 74:4 80:0 89:6 99:0 107:1 111:0
|
||||
15: 0:0 57:6 67:0 89:6 99:0 105:5 115:0
|
||||
16: 0:0 27:4 33:0 57:6 67:0 73:5 83:0 89:7 99:0 105:6 115:0
|
||||
17: 0:0 26:5 36:0 44:4 48:0 57:7 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
18: 0:0 26:6 36:0 42:5 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
19: 0:0 3:2 7:0 26:7 36:0 42:6 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
20: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
21: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
22: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
23: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
24: 0:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
25: 0:0 10:7 20:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
24: 0:0 13:4 17:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
25: 0:0 10:5 20:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 10:7 20:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
27: 0:0 10:7 20:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
28: 0:0 6:2 7:0 8:4 118:0
|
||||
29: 0:0 109:3 110:0
|
||||
30: 0:0 12:2 18:0 27:2 33:0 43:2 49:0 59:2 65:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
31: 0:0
|
||||
32: 0:0 2:4 58:0
|
||||
33: 0:0 2:1 7:3 24:0
|
||||
34: 0:0 2:1 12:0 52:1 58:0
|
||||
35: 0:0 2:7 4:0
|
||||
36: 0:0 2:6 4:0
|
||||
37: 0:0 2:5 4:0
|
||||
38: 0:0 2:2 25:0
|
||||
28: 0:0 10:7 20:0 26:7 36:0 42:7 52:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
29: 0:0 6:2 7:0 8:4 118:0
|
||||
30: 0:0 109:3 110:0
|
||||
31: 0:0 12:2 18:0 27:2 33:0 43:2 49:0 59:2 65:0 74:2 80:0 91:2 96:0 107:8 112:0
|
||||
32: 0:0
|
||||
33: 0:0 2:4 58:0
|
||||
34: 0:0 2:1 7:3 24:0
|
||||
35: 0:0 2:1 12:0 52:1 58:0
|
||||
36: 0:0 2:7 4:0
|
||||
37: 0:0 2:6 4:0
|
||||
38: 0:0 2:5 4:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 43:2 53:9 56:2 64:9 65:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 37:2 45:9 46:2 118:0
|
||||
|
||||
+10
-10
@@ -14,13 +14,13 @@ Text:
|
||||
" 186 calls "
|
||||
" "
|
||||
" 40 "
|
||||
" "
|
||||
" 34 "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ "
|
||||
" ██████████ "
|
||||
" ██████████ 29 "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ 29 29 "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ 26 ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ ██████████ ▂▂▂▂▂▂▂▂▂▂ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ 23 ██████████ ██████████ 22 23 ██████████ "
|
||||
" ██████████ ▇▇▇▇▇▇▇▇▇▇ ██████████ ██████████ ▃▃▃▃▃▃▃▃▃▃ ▇▇▇▇▇▇▇▇▇▇ ██████████ "
|
||||
" 20 ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Notion 4 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -68,13 +68,13 @@ Rows (column:palette):
|
||||
7: 0:0 2:3 11:0
|
||||
8: 0:0
|
||||
9: 0:0 3:2 5:0
|
||||
10: 0:0
|
||||
10: 0:0 12:4 14:0
|
||||
11: 0:0
|
||||
12: 0:0
|
||||
13: 0:0 108:3 110:0
|
||||
14: 0:0 9:5 19:0
|
||||
13: 0:0 44:4 46:0 108:1 110:0
|
||||
14: 0:0 9:5 19:0 60:4 62:0
|
||||
15: 0:0 9:5 19:0
|
||||
16: 0:0 9:5 19:0 41:5 51:0 105:5 115:0
|
||||
16: 0:0 9:5 19:0 28:4 30:0 41:5 51:0 76:4 78:0 92:4 94:0 105:5 115:0
|
||||
17: 0:0 9:6 19:0 41:5 51:0 105:5 115:0
|
||||
18: 0:0 3:2 5:0 9:6 19:0 41:5 51:0 57:5 67:0 105:5 115:0
|
||||
19: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:5 99:0 105:6 115:0
|
||||
@@ -99,4 +99,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 27:2 35:9 36:2 118:0
|
||||
|
||||
+13
-13
@@ -14,17 +14,17 @@ Text:
|
||||
" 17.2K credits "
|
||||
" "
|
||||
" 5K "
|
||||
" "
|
||||
" 4,360.00 "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ "
|
||||
" ██████████ "
|
||||
" ██████████ "
|
||||
" ██████████ "
|
||||
" ▇▇▇▇▇▇▇▇▇▇ ██████████ "
|
||||
" 3,400.00 ██████████ "
|
||||
" ▇▇▇▇▇▇▇▇▇▇ 3,000.00 ██████████ "
|
||||
" ██████████ ▃▃▃▃▃▃▃▃▃▃ ██████████ "
|
||||
" ██████████ ██████████ ██████████ 2,560.00 "
|
||||
" 2.5K ██████████ ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ "
|
||||
" 2.5K 2,280.00 ██████████ ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ "
|
||||
" ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 1,640.00 ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Web 360.00 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -68,17 +68,17 @@ Rows (column:palette):
|
||||
7: 0:0 2:3 15:0
|
||||
8: 0:0
|
||||
9: 0:0 5:2 7:0
|
||||
10: 0:0
|
||||
10: 0:0 89:4 97:0
|
||||
11: 0:0
|
||||
12: 0:0
|
||||
13: 0:0
|
||||
14: 0:0 89:5 99:0
|
||||
15: 0:0 89:5 99:0
|
||||
14: 0:0 58:4 66:0 89:5 99:0
|
||||
15: 0:0 73:4 81:0 89:5 99:0
|
||||
16: 0:0 89:6 99:0
|
||||
17: 0:0 57:5 67:0 89:6 99:0 105:3 113:0
|
||||
18: 0:0 3:2 7:0 57:5 67:0 73:5 83:0 89:6 99:0
|
||||
17: 0:0 57:5 67:0 89:6 99:0 105:1 113:0
|
||||
18: 0:0 3:2 7:0 42:4 50:0 57:5 67:0 73:5 83:0 89:6 99:0
|
||||
19: 0:0 57:6 67:0 73:5 83:0 89:6 99:0
|
||||
20: 0:0 57:6 67:0 73:6 83:0 89:6 99:0 105:5 115:0
|
||||
20: 0:0 26:4 34:0 57:6 67:0 73:6 83:0 89:6 99:0 105:5 115:0
|
||||
21: 0:0 42:5 52:0 57:6 67:0 73:6 83:0 89:6 99:0 105:6 115:0
|
||||
22: 0:0 42:6 52:0 57:6 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
23: 0:0 26:5 36:0 42:6 52:0 57:7 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
@@ -99,4 +99,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 27:2 35:9 36:2 118:0
|
||||
|
||||
+18
-18
@@ -6,6 +6,7 @@ expression: snapshot
|
||||
Text:
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -43,9 +44,8 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -56,26 +56,26 @@ Palette (foreground|background|underline|modifiers):
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0
|
||||
2: 0:0 2:2 94:3 107:0
|
||||
3: 0:0
|
||||
4: 0:0 2:3 13:0
|
||||
5: 0:0 2:4 118:0
|
||||
6: 0:0 2:2 53:0
|
||||
7: 0:0
|
||||
8: 0:0 2:1 8:0 82:1 98:0
|
||||
9: 0:0 2:3 24:0 92:3 98:0
|
||||
10: 0:0 2:4 98:0
|
||||
11: 0:0 2:2 82:0 91:1 98:0
|
||||
12: 0:0 2:1 54:2 82:0
|
||||
13: 0:0
|
||||
2: 0:0
|
||||
3: 0:0 2:2 94:3 107:0
|
||||
4: 0:0
|
||||
5: 0:0 2:3 13:0
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0 2:2 53:0
|
||||
8: 0:0
|
||||
9: 0:0 2:1 8:0 82:1 98:0
|
||||
10: 0:0 2:3 24:0 92:3 98:0
|
||||
11: 0:0 2:4 98:0
|
||||
12: 0:0 2:2 82:0 91:1 98:0
|
||||
13: 0:0 2:1 54:2 82:0
|
||||
14: 0:0
|
||||
15: 0:0
|
||||
16: 0:0
|
||||
17: 0:0
|
||||
18: 0:0
|
||||
19: 0:0 2:2 24:0
|
||||
20: 0:0 2:2 58:0
|
||||
21: 0:0
|
||||
19: 0:0
|
||||
20: 0:0 2:2 24:0
|
||||
21: 0:0 2:2 58:0
|
||||
22: 0:0
|
||||
23: 0:0
|
||||
24: 0:0
|
||||
@@ -95,4 +95,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 44:5 49:2 118:0
|
||||
41: 0:0 2:5 3:2 14:5 23:2 33:5 36:2 44:5 45:2 118:0
|
||||
41: 0:0 2:5 3:2 14:5 17:2 25:5 26:2 118:0
|
||||
|
||||
+13
-13
@@ -22,11 +22,11 @@ Text:
|
||||
" "
|
||||
" 11 "
|
||||
" ▃▃▃▃▃▃▃▃▃▃ "
|
||||
" 10 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ "
|
||||
" ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 10 9 ██████████ "
|
||||
" 8 ▄▄▄▄▄▄▄▄▄▄ 8 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▄▄▄▄▄▄▄▄▄▄ 7 ██████████ "
|
||||
" ██████████ 6 ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ "
|
||||
" ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ 5 ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ▆▆▆▆▆▆▆▆▆▆ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Debugging 1 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -74,13 +74,13 @@ Rows (column:palette):
|
||||
13: 0:0
|
||||
14: 0:0
|
||||
15: 0:0
|
||||
16: 0:0 108:3 110:0
|
||||
16: 0:0 108:1 110:0
|
||||
17: 0:0
|
||||
18: 0:0 3:2 5:0
|
||||
19: 0:0 105:5 115:0
|
||||
20: 0:0 41:5 51:0 105:5 115:0
|
||||
21: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 105:6 115:0
|
||||
22: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 73:5 83:0 105:6 115:0
|
||||
18: 0:0 3:2 5:0 45:4 46:0
|
||||
19: 0:0 13:4 14:0 61:4 62:0 105:5 115:0
|
||||
20: 0:0 41:5 51:0 77:4 78:0 105:5 115:0
|
||||
21: 0:0 9:5 19:0 29:4 30:0 41:5 51:0 57:5 67:0 105:6 115:0
|
||||
22: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 73:5 83:0 93:4 94:0 105:6 115:0
|
||||
23: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:5 99:0 105:6 115:0
|
||||
24: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
25: 0:0 9:7 19:0 25:6 35:0 41:6 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
@@ -99,4 +99,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 27:2 35:9 36:2 118:0
|
||||
|
||||
+10
-10
@@ -6,6 +6,7 @@ expression: snapshot
|
||||
Text:
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -43,9 +44,8 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -56,11 +56,11 @@ Palette (foreground|background|underline|modifiers):
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0
|
||||
2: 0:0 2:3 15:2 107:0
|
||||
3: 0:0
|
||||
4: 0:0 2:3 11:0
|
||||
5: 0:0 2:4 118:0
|
||||
6: 0:0
|
||||
2: 0:0
|
||||
3: 0:0 2:3 15:2 107:0
|
||||
4: 0:0
|
||||
5: 0:0 2:3 11:0
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0
|
||||
8: 0:0
|
||||
9: 0:0
|
||||
@@ -94,5 +94,5 @@ Rows (column:palette):
|
||||
37: 0:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 118:0
|
||||
41: 0:0 2:5 3:2 11:5 12:2 23:5 32:2 42:5 45:2 53:5 54:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 118:0
|
||||
41: 0:0 2:5 3:2 11:5 12:2 23:5 26:2 34:5 35:2 118:0
|
||||
|
||||
+15
-15
@@ -13,13 +13,13 @@ Text:
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" Total usage · relative units "
|
||||
" Approximate · may be delayed up to 6 hours "
|
||||
" "
|
||||
" 100 ██████████ "
|
||||
" 100 "
|
||||
" 100 91 ██████████ "
|
||||
" ▃▃▃▃▃▃▃▃▃▃ ██████████ 86 "
|
||||
" ██████████ ██████████ ▃▃▃▃▃▃▃▃▃▃ "
|
||||
" ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ "
|
||||
" ██████████ 81 ██████████ ▃▃▃▃▃▃▃▃▃▃ "
|
||||
" 73 ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ 64 ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -27,7 +27,7 @@ Text:
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 20 ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Other 10.5% "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -67,13 +67,13 @@ Rows (column:palette):
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0 2:2 30:0
|
||||
8: 0:0 2:2 44:0
|
||||
9: 0:0
|
||||
10: 0:0 3:2 6:0
|
||||
11: 0:0 89:5 99:0 108:3 110:0
|
||||
12: 0:0 89:5 99:0
|
||||
13: 0:0 57:5 67:0 89:5 99:0
|
||||
9: 0:0 92:4 95:0
|
||||
10: 0:0 3:2 6:0 60:4 62:0
|
||||
11: 0:0 89:5 99:0 108:1 110:0
|
||||
12: 0:0 76:4 78:0 89:5 99:0
|
||||
13: 0:0 28:4 30:0 57:5 67:0 89:5 99:0
|
||||
14: 0:0 57:5 67:0 89:6 99:0 105:5 115:0
|
||||
15: 0:0 57:6 67:0 73:5 83:0 89:6 99:0 105:5 115:0
|
||||
15: 0:0 44:4 46:0 57:6 67:0 73:5 83:0 89:6 99:0 105:5 115:0
|
||||
16: 0:0 25:5 35:0 57:6 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
17: 0:0 25:5 35:0 57:7 67:0 73:6 83:0 89:7 99:0 105:6 115:0
|
||||
18: 0:0 25:6 35:0 41:5 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
@@ -81,7 +81,7 @@ Rows (column:palette):
|
||||
20: 0:0 25:7 35:0 41:6 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
21: 0:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
22: 0:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
23: 0:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
23: 0:0 13:4 15:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
24: 0:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
25: 0:0 9:6 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
26: 0:0 9:7 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:7 83:0 89:7 99:0 105:7 115:0
|
||||
@@ -99,4 +99,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 43:2 53:9 56:2 64:9 65:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 37:2 45:9 46:2 118:0
|
||||
|
||||
+10
-10
@@ -14,13 +14,13 @@ Text:
|
||||
" 186 calls "
|
||||
" "
|
||||
" 40 "
|
||||
" "
|
||||
" 34 "
|
||||
" ▁▁▁▁▁▁▁▁▁▁ "
|
||||
" ██████████ "
|
||||
" ██████████ 29 "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ 29 29 "
|
||||
" ██████████ ▆▆▆▆▆▆▆▆▆▆ 26 ▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ██████████ ██████████ ▂▂▂▂▂▂▂▂▂▂ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ 23 ██████████ ██████████ 22 23 ██████████ "
|
||||
" ██████████ ▇▇▇▇▇▇▇▇▇▇ ██████████ ██████████ ▃▃▃▃▃▃▃▃▃▃ ▇▇▇▇▇▇▇▇▇▇ ██████████ "
|
||||
" 20 ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Notion 4 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -68,13 +68,13 @@ Rows (column:palette):
|
||||
7: 0:0 2:3 11:0
|
||||
8: 0:0
|
||||
9: 0:0 3:2 5:0
|
||||
10: 0:0
|
||||
10: 0:0 12:4 14:0
|
||||
11: 0:0
|
||||
12: 0:0
|
||||
13: 0:0 108:3 110:0
|
||||
14: 0:0 9:5 19:0
|
||||
13: 0:0 44:4 46:0 108:1 110:0
|
||||
14: 0:0 9:5 19:0 60:4 62:0
|
||||
15: 0:0 9:5 19:0
|
||||
16: 0:0 9:5 19:0 41:5 51:0 105:5 115:0
|
||||
16: 0:0 9:5 19:0 28:4 30:0 41:5 51:0 76:4 78:0 92:4 94:0 105:5 115:0
|
||||
17: 0:0 9:6 19:0 41:5 51:0 105:5 115:0
|
||||
18: 0:0 3:2 5:0 9:6 19:0 41:5 51:0 57:5 67:0 105:5 115:0
|
||||
19: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:5 99:0 105:6 115:0
|
||||
@@ -99,4 +99,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 27:2 35:9 36:2 118:0
|
||||
|
||||
+8
-8
@@ -6,6 +6,7 @@ expression: snapshot
|
||||
Text:
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Total usage history 3 Messages 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -43,9 +44,8 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · s sort · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -56,11 +56,11 @@ Palette (foreground|background|underline|modifiers):
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0
|
||||
2: 0:0 2:2 81:3 94:0
|
||||
3: 0:0
|
||||
4: 0:0 2:3 13:0
|
||||
5: 0:0 2:4 118:0
|
||||
6: 0:0
|
||||
2: 0:0
|
||||
3: 0:0 2:2 81:3 94:0
|
||||
4: 0:0
|
||||
5: 0:0 2:3 13:0
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0
|
||||
8: 0:0
|
||||
9: 0:0
|
||||
@@ -95,4 +95,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 29:5 30:2 43:5 46:2 53:5 58:2 118:0
|
||||
41: 0:0 2:5 3:2 14:5 23:2 33:5 36:2 44:5 45:2 118:0
|
||||
41: 0:0 2:5 3:2 14:5 17:2 25:5 26:2 118:0
|
||||
|
||||
+10
-10
@@ -17,13 +17,13 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" 103 "
|
||||
" 107 103 "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ "
|
||||
" ██████████ ██████████ "
|
||||
" ██████████ ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▆▆▆▆▆▆▆▆▆▆ ██████████ "
|
||||
" 83 ██████████ 85 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ 75 ▆▆▆▆▆▆▆▆▆▆ ██████████ "
|
||||
" 75 ██████████ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 62 ██████████ ██████████ ██████████ 59 ██████████ ██████████ "
|
||||
" ▆▆▆▆▆▆▆▆▆▆ ██████████ ██████████ ██████████ ▃▃▃▃▃▃▃▃▃▃ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Other 7 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -71,13 +71,13 @@ Rows (column:palette):
|
||||
10: 0:0
|
||||
11: 0:0
|
||||
12: 0:0
|
||||
13: 0:0 108:3 111:0
|
||||
13: 0:0 44:4 47:0 108:1 111:0
|
||||
14: 0:0
|
||||
15: 0:0 41:5 51:0
|
||||
16: 0:0 41:5 51:0 105:5 115:0
|
||||
17: 0:0 41:6 51:0 105:6 115:0
|
||||
16: 0:0 28:4 30:0 41:5 51:0 92:4 94:0 105:5 115:0
|
||||
17: 0:0 41:6 51:0 60:4 62:0 105:6 115:0
|
||||
18: 0:0 4:2 6:0 25:5 35:0 41:6 51:0 89:5 99:0 105:6 115:0
|
||||
19: 0:0 25:6 35:0 41:6 51:0 57:5 67:0 89:6 99:0 105:6 115:0
|
||||
19: 0:0 13:4 15:0 25:6 35:0 41:6 51:0 57:5 67:0 76:4 78:0 89:6 99:0 105:6 115:0
|
||||
20: 0:0 25:6 35:0 41:7 51:0 57:6 67:0 89:6 99:0 105:7 115:0
|
||||
21: 0:0 9:6 19:0 25:6 35:0 41:7 51:0 57:6 67:0 73:5 83:0 89:6 99:0 105:7 115:0
|
||||
22: 0:0 9:6 19:0 25:7 35:0 41:7 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
@@ -99,4 +99,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 43:2 53:9 56:2 64:9 65:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 22:9 23:2 34:9 37:2 45:9 46:2 118:0
|
||||
|
||||
+13
-13
@@ -22,11 +22,11 @@ Text:
|
||||
" "
|
||||
" 11 "
|
||||
" ▃▃▃▃▃▃▃▃▃▃ "
|
||||
" 10 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ "
|
||||
" ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ ██████████ "
|
||||
" 10 9 ██████████ "
|
||||
" 8 ▄▄▄▄▄▄▄▄▄▄ 8 ██████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄ ██████████ ▄▄▄▄▄▄▄▄▄▄ 7 ██████████ "
|
||||
" ██████████ 6 ██████████ ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ "
|
||||
" ██████████ ▅▅▅▅▅▅▅▅▅▅ ██████████ ██████████ ██████████ 5 ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ▆▆▆▆▆▆▆▆▆▆ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
" ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ ██████████ "
|
||||
@@ -45,7 +45,7 @@ Text:
|
||||
" ● Debugging 1 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -74,13 +74,13 @@ Rows (column:palette):
|
||||
13: 0:0
|
||||
14: 0:0
|
||||
15: 0:0
|
||||
16: 0:0 108:3 110:0
|
||||
16: 0:0 108:1 110:0
|
||||
17: 0:0
|
||||
18: 0:0 3:2 5:0
|
||||
19: 0:0 105:5 115:0
|
||||
20: 0:0 41:5 51:0 105:5 115:0
|
||||
21: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 105:6 115:0
|
||||
22: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 73:5 83:0 105:6 115:0
|
||||
18: 0:0 3:2 5:0 45:4 46:0
|
||||
19: 0:0 13:4 14:0 61:4 62:0 105:5 115:0
|
||||
20: 0:0 41:5 51:0 77:4 78:0 105:5 115:0
|
||||
21: 0:0 9:5 19:0 29:4 30:0 41:5 51:0 57:5 67:0 105:6 115:0
|
||||
22: 0:0 9:5 19:0 41:5 51:0 57:5 67:0 73:5 83:0 93:4 94:0 105:6 115:0
|
||||
23: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:5 83:0 89:5 99:0 105:6 115:0
|
||||
24: 0:0 9:6 19:0 25:5 35:0 41:6 51:0 57:6 67:0 73:6 83:0 89:6 99:0 105:7 115:0
|
||||
25: 0:0 9:7 19:0 25:6 35:0 41:6 51:0 57:7 67:0 73:6 83:0 89:7 99:0 105:7 115:0
|
||||
@@ -99,4 +99,4 @@ Rows (column:palette):
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:9 9:2 20:9 21:2 34:9 37:2 44:9 49:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 33:2 43:9 46:2 54:9 55:2 118:0
|
||||
41: 0:0 2:9 3:2 12:9 13:2 24:9 27:2 35:9 36:2 118:0
|
||||
|
||||
+10
-10
@@ -6,6 +6,7 @@ expression: snapshot
|
||||
Text:
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" [1 Summary] 2 Total usage history 3 Messages 4 Plugins called 5 Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Summary "
|
||||
@@ -43,9 +44,8 @@ Text:
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ scroll "
|
||||
" g view · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" tab/1–6 section · z dashboard "
|
||||
" g view · R refresh · esc back · q close "
|
||||
Palette (foreground|background|underline|modifiers):
|
||||
0: Reset|Reset|Reset|NONE
|
||||
1: Reset|Reset|Reset|BOLD
|
||||
@@ -56,11 +56,11 @@ Palette (foreground|background|underline|modifiers):
|
||||
Rows (column:palette):
|
||||
0: 0:0 2:1 11:2 28:0
|
||||
1: 0:0
|
||||
2: 0:0 2:3 15:2 94:0
|
||||
3: 0:0
|
||||
4: 0:0 2:3 11:0
|
||||
5: 0:0 2:4 118:0
|
||||
6: 0:0
|
||||
2: 0:0
|
||||
3: 0:0 2:3 15:2 94:0
|
||||
4: 0:0
|
||||
5: 0:0 2:3 11:0
|
||||
6: 0:0 2:4 118:0
|
||||
7: 0:0
|
||||
8: 0:0
|
||||
9: 0:0
|
||||
@@ -94,5 +94,5 @@ Rows (column:palette):
|
||||
37: 0:0
|
||||
38: 0:0
|
||||
39: 0:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 34:5 37:2 118:0
|
||||
41: 0:0 2:5 3:2 11:5 12:2 23:5 32:2 42:5 45:2 53:5 54:2 118:0
|
||||
40: 0:0 2:5 9:2 20:5 21:2 118:0
|
||||
41: 0:0 2:5 3:2 11:5 12:2 23:5 26:2 34:5 35:2 118:0
|
||||
|
||||
+11
-11
@@ -12,13 +12,13 @@ expression: "format!(\"{empty}\\n{missing}\\n{partial}\")"
|
||||
" 38 uses "
|
||||
" "
|
||||
" 10 "
|
||||
" "
|
||||
" 9 "
|
||||
" ▇▇▇▇▇▇▇▇▇▇▇▇ "
|
||||
" ████████████ "
|
||||
" 8 ████████████ 8 "
|
||||
" ▆▆▆▆▆▆▆▆▆▆▆▆ ████████████ ▆▆▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ ████████████ 7 "
|
||||
" ████████████ ████████████ ████████████ ▅▅▅▅▅▅▅▅▅▅▅▅ "
|
||||
" ████████████ ████████████ ████████████ ████████████ "
|
||||
" ████████████ 6 ████████████ ████████████ ████████████ "
|
||||
" ████████████ ▄▄▄▄▄▄▄▄▄▄▄▄ ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ ████████████ ████████████ ████████████ "
|
||||
" 5 ████████████ ████████████ ████████████ ████████████ ████████████ "
|
||||
@@ -45,7 +45,7 @@ expression: "format!(\"{empty}\\n{missing}\\n{partial}\")"
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -57,13 +57,13 @@ expression: "format!(\"{empty}\\n{missing}\\n{partial}\")"
|
||||
" 38 uses "
|
||||
" "
|
||||
" 10 "
|
||||
" "
|
||||
" 9 "
|
||||
" ▇▇▇▇▇▇▇▇▇▇▇▇ "
|
||||
" ████████████ "
|
||||
" 8 ████████████ 8 "
|
||||
" ▆▆▆▆▆▆▆▆▆▆▆▆ ████████████ ▆▆▆▆▆▆▆▆▆▆▆▆ "
|
||||
" ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ ████████████ 7 "
|
||||
" ████████████ ████████████ ████████████ ▅▅▅▅▅▅▅▅▅▅▅▅ "
|
||||
" ████████████ ████████████ ████████████ ████████████ "
|
||||
" ████████████ 6 ████████████ ████████████ ████████████ "
|
||||
" ████████████ ▄▄▄▄▄▄▄▄▄▄▄▄ ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ ████████████ ████████████ ████████████ "
|
||||
" 5 ████████████ ████████████ ████████████ ████████████ ████████████ "
|
||||
@@ -90,7 +90,7 @@ expression: "format!(\"{empty}\\n{missing}\\n{partial}\")"
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -135,4 +135,4 @@ expression: "format!(\"{empty}\\n{missing}\\n{partial}\")"
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
+11
-11
@@ -13,15 +13,15 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" "
|
||||
" 40 "
|
||||
" "
|
||||
" "
|
||||
" 34 "
|
||||
" ▂▂▂▂▂▂▂▂▂▂▂▂ "
|
||||
" ████████████ "
|
||||
" ████████████ 29 "
|
||||
" ████████████ 29 29 "
|
||||
" ████████████ ▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁ "
|
||||
" ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ 26 ████████████ "
|
||||
" ████████████ ████████████ ▂▂▂▂▂▂▂▂▂▂▂▂ ████████████ "
|
||||
" ████████████ ████████████ ████████████ ████████████ "
|
||||
" ████████████ ▃▃▃▃▃▃▃▃▃▃▃▃ ████████████ ████████████ ▃▃▃▃▃▃▃▃▃▃▃▃ ████████████ "
|
||||
" ████████████ 23 ████████████ ████████████ 23 ████████████ "
|
||||
" ████████████ ▃▃▃▃▃▃▃▃▃▃▃▃ ████████████ ████████████ 22 ▃▃▃▃▃▃▃▃▃▃▃▃ ████████████ "
|
||||
" ████████████ ████████████ ████████████ ████████████ ▆▆▆▆▆▆▆▆▆▆▆▆ ████████████ ████████████ "
|
||||
" 20 ████████████ ████████████ ████████████ ████████████ ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ ████████████ ████████████ ████████████ ████████████ ████████████ "
|
||||
@@ -49,7 +49,7 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" ● Notion 4 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -62,9 +62,9 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" 54 uses "
|
||||
" "
|
||||
" 20 "
|
||||
" "
|
||||
" ▂▂▂▂▂ "
|
||||
" 10 ▃▃▃▃ ▅▅▅▅ ▃▃▃▃ 5 █████ "
|
||||
" 11 "
|
||||
" 8 9 8 7 ▂▂▂▂▂ "
|
||||
" 10 ▃▃▃▃ 6 ▅▅▅▅ ▃▃▃▃ 5 █████ "
|
||||
" ████ ▆▆▆▆ ████ ████ ████ ▄▄▄▄ █████ "
|
||||
" ████ ████ ████ ████ ████ ████ █████ "
|
||||
" 0 ────────────────────────────────────────────────── "
|
||||
@@ -81,5 +81,5 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter "
|
||||
" details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q "
|
||||
" close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
" "
|
||||
|
||||
@@ -32,7 +32,6 @@ impl AnalyticsView {
|
||||
self.section = Section::Summary;
|
||||
self.zoomed = true;
|
||||
self.scroll_offset = 0;
|
||||
self.group_picker = None;
|
||||
if let Some(view) = view {
|
||||
self.sections[Section::Summary].group = VIEWS
|
||||
.iter()
|
||||
|
||||
@@ -7,7 +7,6 @@ use super::render::join_columns;
|
||||
use super::sections::Section;
|
||||
use super::styles::secondary_style;
|
||||
use crate::line_truncation::truncate_line_with_ellipsis_if_overflow as truncate;
|
||||
use crate::style::accent_style;
|
||||
use crate::wrapping::RtOptions;
|
||||
use crate::wrapping::word_wrap_lines;
|
||||
use codex_backend_client::ProfileInvocationKind;
|
||||
@@ -157,17 +156,7 @@ impl AnalyticsView {
|
||||
lines.extend([values, labels, Line::default()]);
|
||||
}
|
||||
let selected = self.sections[Section::Summary].group;
|
||||
let mut controls = Line::default();
|
||||
for (index, view) in super::summary::VIEWS.iter().enumerate() {
|
||||
if index > 0 {
|
||||
controls.spans.push(" ".into());
|
||||
}
|
||||
controls.spans.push(if index == selected {
|
||||
format!("[{}]", view.label()).set_style(accent_style())
|
||||
} else {
|
||||
view.label().to_string().set_style(secondary_style())
|
||||
});
|
||||
}
|
||||
let controls = Line::from(super::summary::VIEWS[selected].label());
|
||||
if inner_width >= 58 {
|
||||
lines.push(columns(
|
||||
"Token activity".bold().into(),
|
||||
|
||||
@@ -27,8 +27,6 @@ fn summary_modes_reflow_and_keep_selection_across_tabs() {
|
||||
screen(&mut view, /*width*/ 140, /*height*/ 44)
|
||||
);
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
press(&mut view, KeyCode::Down);
|
||||
press(&mut view, KeyCode::Enter);
|
||||
assert_eq!(view.sections[Section::Summary].group, 1);
|
||||
assert!(view.profile.ready().is_some());
|
||||
insta::assert_snapshot!(
|
||||
@@ -39,8 +37,6 @@ fn summary_modes_reflow_and_keep_selection_across_tabs() {
|
||||
press(&mut view, KeyCode::BackTab);
|
||||
assert_eq!(view.sections[Section::Summary].group, 1);
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
press(&mut view, KeyCode::Down);
|
||||
press(&mut view, KeyCode::Enter);
|
||||
insta::assert_snapshot!(
|
||||
"summary_cumulative_narrow",
|
||||
screen(&mut view, /*width*/ 64, /*height*/ 60)
|
||||
@@ -110,8 +106,6 @@ async fn summary_loads_once_per_refresh_and_does_not_block_other_reports() {
|
||||
assert!(matches!(view.profile, Load::Error(_)));
|
||||
assert!(view.sections[Section::Usage].history.ready().is_some());
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
press(&mut view, KeyCode::Down);
|
||||
press(&mut view, KeyCode::Enter);
|
||||
press(&mut view, KeyCode::Tab);
|
||||
press(&mut view, KeyCode::BackTab);
|
||||
test_support::settle(&mut view).await;
|
||||
@@ -141,3 +135,19 @@ async fn closing_summary_aborts_its_pending_profile() {
|
||||
view.cancel_loads();
|
||||
assert!(cancelled_rx.await.is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn summary_scroll_hints_follow_overflow_and_grouping_wraps() {
|
||||
let mut view = fixture::view(models::AccountKind::Consumer);
|
||||
view.profile = Load::Ready(profile());
|
||||
view.select_summary(Some(crate::analytics::TokenActivityView::Daily));
|
||||
assert!(!screen(&mut view, /*width*/ 140, /*height*/ 60).contains("scroll"));
|
||||
assert!(screen(&mut view, /*width*/ 80, /*height*/ 18).contains("scroll"));
|
||||
let mut groups = Vec::new();
|
||||
for _ in 0..4 {
|
||||
groups.push(view.sections[Section::Summary].group);
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
}
|
||||
assert_eq!(groups, vec![0, 1, 2, 0]);
|
||||
assert!(!screen(&mut view, /*width*/ 140, /*height*/ 60).contains("scroll"));
|
||||
}
|
||||
|
||||
@@ -39,6 +39,25 @@ fn screen(view: &mut AnalyticsView, width: u16, height: u16) -> String {
|
||||
terminal.backend().to_string()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn analytics_exact_fit_content_has_no_scroll_hint() {
|
||||
let mut view = fixture::view(models::AccountKind::Enterprise);
|
||||
view.section = Section::Chats;
|
||||
screen(&mut view, /*width*/ 120, /*height*/ 60);
|
||||
let chrome_height = 60 - view.viewport_height;
|
||||
let content_height = view
|
||||
.panel(Section::Chats, /*width*/ 116, /*chart_height*/ 4)
|
||||
.lines
|
||||
.len();
|
||||
let exact_height = (chrome_height + content_height) as u16;
|
||||
|
||||
let exact = screen(&mut view, /*width*/ 120, exact_height);
|
||||
assert!(!exact.contains("scroll"));
|
||||
assert_eq!(view.viewport_height, content_height);
|
||||
|
||||
insta::assert_snapshot!(exact);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn analytics_overview() {
|
||||
let mut view = fixture::view(models::AccountKind::Consumer);
|
||||
@@ -93,15 +112,8 @@ async fn analytics_credits_grouping_preserves_selected_day_and_total() {
|
||||
.iter()
|
||||
.map(|day| day.total)
|
||||
.collect::<Vec<_>>();
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
view.end_date = fixture::END_DATE;
|
||||
fixture::seed_reports(&mut view);
|
||||
let picker = screen(&mut view, /*width*/ 85, /*height*/ 40);
|
||||
press(&mut view, KeyCode::Esc);
|
||||
for group in [2, 4, 5, 0] {
|
||||
press(&mut view, KeyCode::Char('g'));
|
||||
press(&mut view, KeyCode::Down);
|
||||
press(&mut view, KeyCode::Enter);
|
||||
test_support::settle(&mut view).await;
|
||||
assert_eq!(
|
||||
(
|
||||
@@ -122,11 +134,9 @@ async fn analytics_credits_grouping_preserves_selected_day_and_total() {
|
||||
before
|
||||
);
|
||||
}
|
||||
view.end_date = fixture::END_DATE;
|
||||
fixture::seed_reports(&mut view);
|
||||
insta::assert_snapshot!(format!(
|
||||
"{picker}\n{}",
|
||||
screen(&mut view, /*width*/ 85, /*height*/ 40)
|
||||
));
|
||||
insta::assert_snapshot!(screen(&mut view, /*width*/ 85, /*height*/ 40));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
||||
+4
-4
@@ -25,7 +25,7 @@ expression: snapshot
|
||||
|
||||
|
||||
tab/1–6 section · z dashboard · ←/→ day
|
||||
r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close
|
||||
r 7/30d · R refresh · esc back · q close
|
||||
|
||||
Analytics · Live account
|
||||
[7d] 30d · [date range]
|
||||
@@ -50,10 +50,11 @@ expression: snapshot
|
||||
|
||||
|
||||
tab/1–6 section · z dashboard · ←/→ day
|
||||
r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close
|
||||
r 7/30d · R refresh · esc back · q close
|
||||
|
||||
Analytics · Live account
|
||||
|
||||
|
||||
[1 Summary] 2 Total usage history 3 Messages 4 Plugins called 5 Skills
|
||||
used 6 Top chats
|
||||
|
||||
@@ -67,12 +68,11 @@ expression: snapshot
|
||||
— —
|
||||
Current streak Longest streak
|
||||
|
||||
Token activity Daily [Weekly] Cumulative
|
||||
Token activity Weekly
|
||||
Last 12 months
|
||||
|
||||
Token activity history unavailable
|
||||
|
||||
Activity insights Most used plugins and skills
|
||||
|
||||
tab/1–6 section · z dashboard · ↑/↓ scroll
|
||||
g view · R refresh · pgup/pgdn scroll · esc back · q close
|
||||
|
||||
@@ -162,7 +162,7 @@ async fn analytics_menu_reopen_preserves_navigation_and_explicit_view_selects_su
|
||||
assert_eq!(screens[0], screens[1]);
|
||||
assert!(screens[1].contains("[4 Plugins called]"));
|
||||
assert!(screens[2].contains("[1 Summary]"));
|
||||
assert!(screens[2].contains("[Weekly]"));
|
||||
assert!(screens[2].contains("Weekly"));
|
||||
let snapshot = screens.join("\n\n");
|
||||
let snapshot = snapshot
|
||||
.lines()
|
||||
|
||||
+6
-47
@@ -1,48 +1,7 @@
|
||||
---
|
||||
source: tui/src/analytics_tests.rs
|
||||
expression: "format!(\"{picker}\\n{}\", screen(&mut view, 85, 40))"
|
||||
expression: "screen(&mut view, 85, 40)"
|
||||
---
|
||||
" Analytics · Live account · analytics@example.test "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
" "
|
||||
" 1 Summary [2 Credits usage history] 3 Token usage history 4 Plugins called 5 "
|
||||
" Skills used 6 Top chats "
|
||||
" "
|
||||
" ▎ Credits usage history By product "
|
||||
" ───────────────────────────────────────────────────────────────────────────────── "
|
||||
" › Product "
|
||||
" Model "
|
||||
" Speed "
|
||||
" Reasoning "
|
||||
" 431.00 credits "
|
||||
" "
|
||||
" 150 "
|
||||
" "
|
||||
" 109.00 "
|
||||
" ▃▃▃▃▃▃▃ "
|
||||
" ███████ "
|
||||
" ▂▂▂▂▂▂▂ ███████ "
|
||||
" 75 ███████ ▄▄▄▄▄▄▄ ███████ "
|
||||
" ███████ ███████ ███████ ▄▄▄▄▄▄▄ "
|
||||
" ▇▇▇▇▇▇▇ ███████ ███████ ███████ ███████ "
|
||||
" ▄▄▄▄▄▄▄ ███████ ███████ ███████ ███████ ███████ "
|
||||
" ███████ ███████ ███████ ███████ ███████ ███████ "
|
||||
" ███████ ███████ ███████ ███████ ███████ ███████ "
|
||||
" 0 ███████ ███████ ███████ ███████ ███████ ███████ "
|
||||
" 0 ──────────────────────────────────────────────────────────────────────────── "
|
||||
" ▲ "
|
||||
" Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 "
|
||||
" "
|
||||
" ──────────────────────────────────────────────────────── "
|
||||
" Sep 1 · 109.00 credits "
|
||||
" Product Credits "
|
||||
" ● CLI 39.00 "
|
||||
" ● Desktop app 38.00 "
|
||||
" ● IDE extension 18.00 "
|
||||
" ● Web 14.00 "
|
||||
" "
|
||||
" ↑/↓ group · enter select · esc cancel "
|
||||
|
||||
" Analytics · Live account · analytics@example.test "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
" "
|
||||
@@ -58,12 +17,12 @@ expression: "format!(\"{picker}\\n{}\", screen(&mut view, 85, 40))"
|
||||
" "
|
||||
" 109.00 "
|
||||
" ▅▅▅▅▅▅▅ "
|
||||
" 85.00 ███████ "
|
||||
" ███████ "
|
||||
" ███████ "
|
||||
" ███████ ███████ "
|
||||
" 75 ███████ ███████ ███████ "
|
||||
" ███████ 75.00 ███████ "
|
||||
" 75 57.00 ███████ ███████ ███████ 64.00 "
|
||||
" ███████ ███████ ███████ ▆▆▆▆▆▆▆ "
|
||||
" ███████ ███████ ███████ ███████ ███████ "
|
||||
" 41.00 ███████ ███████ ███████ ███████ ███████ "
|
||||
" ▂▂▂▂▂▂▂ ███████ ███████ ███████ ███████ ███████ "
|
||||
" ███████ ███████ ███████ ███████ ███████ ███████ "
|
||||
" ███████ ███████ ███████ ███████ ███████ ███████ "
|
||||
@@ -82,4 +41,4 @@ expression: "format!(\"{picker}\\n{}\", screen(&mut view, 85, 40))"
|
||||
" ● Web 14.00 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
+5
-5
@@ -5,9 +5,9 @@ expression: "screens.join(\"\\n\\n\")"
|
||||
▎ Credits usage history By product
|
||||
──────────────────────────────────────────────────────
|
||||
13.1K credits
|
||||
|
||||
12,746.44
|
||||
15K ▄▄▄▄
|
||||
████
|
||||
████ 85.00 75.00 109.00 64.00
|
||||
0.00 ████ — ▁▁▁▁ ▁▁▁▁ ▁▁▁▁ ▁▁▁▁
|
||||
0 ────────────────────────────────────────────────
|
||||
▲
|
||||
@@ -26,7 +26,7 @@ Product Credits
|
||||
13.1K credits
|
||||
12,746.44
|
||||
15K ▄▄▄▄
|
||||
████
|
||||
████ 85.00 75.00 109.00 64.00
|
||||
0 ████ — ▁▁▁▁ ▁▁▁▁ ▁▁▁▁ ▁▁▁▁
|
||||
0 ────────────────────────────────────────────────
|
||||
▲
|
||||
@@ -43,9 +43,9 @@ Product Credits
|
||||
▎ Credits usage history By product
|
||||
──────────────────────────────────────────────────────
|
||||
13.1K credits
|
||||
|
||||
12,746.44
|
||||
15K ▄▄▄▄
|
||||
████
|
||||
████ 85.00 75.00 109.00 64.00
|
||||
0 ████ — ▁▁▁▁ ▁▁▁▁ ▁▁▁▁ ▁▁▁▁
|
||||
0 ────────────────────────────────────────────────
|
||||
▲
|
||||
|
||||
+12
-12
@@ -14,14 +14,14 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" "
|
||||
" 150 "
|
||||
" "
|
||||
" "
|
||||
" 109.00 "
|
||||
" ▅▅▅▅ "
|
||||
" ████ "
|
||||
" ▆▆▆▆ ████ "
|
||||
" 85.00 ████ "
|
||||
" ▆▆▆▆ 75.00 ████ 64.00 "
|
||||
" 75 ████ ████ ████ "
|
||||
" ████ ████ ████ ████ "
|
||||
" ████ ████ ████ ████ "
|
||||
" ████ ████ ████ ████ "
|
||||
" 14.00 ████ ████ ████ ████ "
|
||||
" ████ ████ ████ ████ "
|
||||
" 0 ████ — ████ ████ ████ ████ "
|
||||
" 0 ───────────────────────────────────────────────── "
|
||||
@@ -38,8 +38,8 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter "
|
||||
" details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q "
|
||||
" close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
" "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -53,16 +53,16 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" 150 "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" 109.00 "
|
||||
" ▇▇▇▇▇▇▇▇▇▇▇▇ "
|
||||
" ████████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄▄▄ ████████████ "
|
||||
" 75 ████████████ ▄▄▄▄▄▄▄▄▄▄▄▄ ████████████ "
|
||||
" 85.00 ████████████ "
|
||||
" ▄▄▄▄▄▄▄▄▄▄▄▄ 75.00 ████████████ "
|
||||
" 75 ████████████ ▄▄▄▄▄▄▄▄▄▄▄▄ ████████████ 64.00 "
|
||||
" ████████████ ████████████ ████████████ ▃▃▃▃▃▃▃▃▃▃▃▃ "
|
||||
" ████████████ ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ ████████████ ████████████ "
|
||||
" ████████████ ████████████ ████████████ ████████████ "
|
||||
" 14.00 ████████████ ████████████ ████████████ ████████████ "
|
||||
" ▃▃▃▃▃▃▃▃▃▃▃▃ ████████████ ████████████ ████████████ ████████████ "
|
||||
" 0 ████████████ — ████████████ ████████████ ████████████ ████████████ "
|
||||
" 0 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
@@ -78,4 +78,4 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" ● Web — "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
+3
-3
@@ -4,6 +4,7 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
@@ -41,12 +42,12 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" Summary Credits usage history Token usage history "
|
||||
" Plugins called Skills used [Top chats] "
|
||||
" "
|
||||
@@ -61,7 +62,6 @@ expression: "format!(\"{wide}\\n{narrow}\")"
|
||||
" GPT-5.6-Sol 120.00 "
|
||||
" high · standard "
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter "
|
||||
" details "
|
||||
" R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
|
||||
+24
-24
@@ -14,11 +14,11 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" "
|
||||
" 150 "
|
||||
" "
|
||||
" "
|
||||
" 107 "
|
||||
" ▄▄▄▄ "
|
||||
" ████ "
|
||||
" ▅▅▅▅ ████ "
|
||||
" 75 ████ ████ ████ "
|
||||
" 83 ████ "
|
||||
" ▅▅▅▅ ████ 75 "
|
||||
" 75 62 ████ ████ ████ 59 "
|
||||
" ▇▇▇▇ ████ ████ ████ ▅▅▅▅ "
|
||||
" ████ ████ ████ ████ ████ "
|
||||
" ████ ████ ████ ████ ████ "
|
||||
@@ -37,8 +37,8 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc "
|
||||
" back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
" "
|
||||
" "
|
||||
|
||||
" Analytics · Live account "
|
||||
@@ -53,11 +53,11 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" "
|
||||
" 150 "
|
||||
" "
|
||||
" "
|
||||
" 107 "
|
||||
" ▄▄▄▄ "
|
||||
" ████ "
|
||||
" ▅▅▅▅ ████ "
|
||||
" 75 ████ ████ ████ "
|
||||
" 83 ████ "
|
||||
" ▅▅▅▅ ████ 75 "
|
||||
" 75 62 ████ ████ ████ 59 "
|
||||
" ▇▇▇▇ ████ ████ ████ ▅▅▅▅ "
|
||||
" ████ ████ ████ ████ ████ "
|
||||
" ████ ████ ████ ████ ████ "
|
||||
@@ -76,8 +76,8 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc "
|
||||
" back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
" "
|
||||
" "
|
||||
|
||||
" Analytics · Live account "
|
||||
@@ -92,12 +92,12 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" 150 "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" 107 "
|
||||
" ▅▅▅▅▅▅▅▅ "
|
||||
" ████████ "
|
||||
" ▂▂▂▂▂▂▂▂ ████████ "
|
||||
" 75 ████████ ████████ ▄▄▄▄▄▄▄▄ "
|
||||
" ▁▁▁▁▁▁▁▁ ████████ ████████ ████████ "
|
||||
" 83 ████████ "
|
||||
" ▂▂▂▂▂▂▂▂ ████████ 75 "
|
||||
" 75 62 ████████ ████████ ▄▄▄▄▄▄▄▄ "
|
||||
" ▁▁▁▁▁▁▁▁ ████████ ████████ ████████ 59 "
|
||||
" ████████ ████████ ████████ ████████ ▇▇▇▇▇▇▇▇ "
|
||||
" ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ "
|
||||
@@ -117,7 +117,7 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -131,12 +131,12 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" 150 "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" 107 "
|
||||
" ▅▅▅▅▅▅▅▅ "
|
||||
" ████████ "
|
||||
" ▂▂▂▂▂▂▂▂ ████████ "
|
||||
" 75 ████████ ████████ ▄▄▄▄▄▄▄▄ "
|
||||
" ▁▁▁▁▁▁▁▁ ████████ ████████ ████████ "
|
||||
" 83 ████████ "
|
||||
" ▂▂▂▂▂▂▂▂ ████████ 75 "
|
||||
" 75 62 ████████ ████████ ▄▄▄▄▄▄▄▄ "
|
||||
" ▁▁▁▁▁▁▁▁ ████████ ████████ ████████ 59 "
|
||||
" ████████ ████████ ████████ ████████ ▇▇▇▇▇▇▇▇ "
|
||||
" ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ "
|
||||
@@ -156,4 +156,4 @@ expression: "snapshots.join(\"\\n\")"
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
---
|
||||
source: tui/src/analytics_tests.rs
|
||||
expression: exact
|
||||
---
|
||||
" Analytics · Live account "
|
||||
" "
|
||||
" "
|
||||
" 1 Summary 2 Credits usage history 3 Token usage history 4 Plugins called 5 Skills used [6 Top chats] "
|
||||
" "
|
||||
" ▎ Top chats "
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" Active in past 30 days · sorted by lifetime credits "
|
||||
" "
|
||||
" Chat Lifetime credits "
|
||||
" › Q3 planning analysis 120.00 "
|
||||
" Refactor billing usage 113.00 "
|
||||
" Other usage 109.00 "
|
||||
" Launch readiness review 85.00 "
|
||||
" "
|
||||
" Showing 1–4 of 5 chats "
|
||||
" Local chats · excludes archived chats and subagent usage "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ↑/↓ row · enter details "
|
||||
" R refresh · esc back · q close "
|
||||
+4
-4
@@ -11,9 +11,9 @@ expression: output
|
||||
" ▎ Credits usage history By product "
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" 367.00 credits "
|
||||
" "
|
||||
" 150 ▁▁▁▁▁▁▁▁ "
|
||||
" ▁▁▁▁▁▁▁▁ ▅▅▅▅▅▅▅▅ ▄▄▄▄▄▄▄▄ ████████ "
|
||||
" 109.00 "
|
||||
" 150 57.00 85.00 75.00 ▁▁▁▁▁▁▁▁ "
|
||||
" 41.00 ▁▁▁▁▁▁▁▁ ▅▅▅▅▅▅▅▅ ▄▄▄▄▄▄▄▄ ████████ "
|
||||
" 0 ▆▆▆▆▆▆▆▆ ████████ ████████ ████████ ████████ "
|
||||
" 0 ────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" ▇▇▇▇▇▇▇▇ "
|
||||
@@ -33,4 +33,4 @@ expression: output
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
+11
-11
@@ -10,8 +10,8 @@ expression: "format!(\"{overview}\\n{skills}\")"
|
||||
" │ No history has been reported. │ │ 7d │ "
|
||||
" │ │ │ By feature │ "
|
||||
" │ │ │ Total usage · relative units │ "
|
||||
" │ │ │ 86 │ "
|
||||
" │ │ │ 100 ▃▃▃▃▃ ▂▂▂▂▂ ▆▆▆▆▆ ▄▄▄▄▄ █████ ▅▅▅▅▅▅ │ "
|
||||
" │ │ │ 73 64 91 81 100 86 │ "
|
||||
" │ │ │ 100 20 ▃▃▃▃▃ ▂▂▂▂▂ ▆▆▆▆▆ ▄▄▄▄▄ █████ ▅▅▅▅▅▅ │ "
|
||||
" │ │ │ ▃▃▃▃▃ █████ █████ █████ █████ █████ ██████ │ "
|
||||
" │ │ │ 0 ───────────────────────────────────────────────────────── │ "
|
||||
" │ │ │ ▲ │ "
|
||||
@@ -29,9 +29,9 @@ expression: "format!(\"{overview}\\n{skills}\")"
|
||||
" │ │ │ │ "
|
||||
" │ 7d │ │ 7d │ "
|
||||
" │ By model │ │ 186 calls │ "
|
||||
" │ 574 reported messages │ │ 29 │ "
|
||||
" │ 103 │ │ 40 ▅▅▅▅▅ ▁▁▁▁▁ ▃▃▃▃▃ ▂▂▂▂▂▂ ▁▁▁▁▁ ▃▃▃▃▃▃ │ "
|
||||
" │ 150 ▃▃▃▃▃ ▁▁▁▁▁ ▂▂▂▂▂▂ │ │ █████ █████ █████ ██████ █████ █████ ██████ │ "
|
||||
" │ 574 reported messages │ │ 34 23 29 26 22 23 29 │ "
|
||||
" │ 83 107 85 103 │ │ 40 ▅▅▅▅▅ ▁▁▁▁▁ ▃▃▃▃▃ ▂▂▂▂▂▂ ▁▁▁▁▁ ▃▃▃▃▃▃ │ "
|
||||
" │ 150 62 ▃▃▃▃▃ 75 59 ▁▁▁▁▁ ▂▂▂▂▂▂ │ │ █████ █████ █████ ██████ █████ █████ ██████ │ "
|
||||
" │ ▆▆▆▆▆ █████ █████ █████ ▆▆▆▆▆ █████ ██████ │ │ 0 ────────────────────────────────────────────────────────── │ "
|
||||
" │ 0 ───────────────────────────────────────────────────────── │ │ ▲ │ "
|
||||
" │ ▲ │ │ Aug 27 Aug 28 Aug 29 Aug 30 Aug 31 Sep 1 Sep 2 │ "
|
||||
@@ -50,7 +50,7 @@ expression: "format!(\"{overview}\\n{skills}\")"
|
||||
" │ 7d │ │ No history has been reported. │ "
|
||||
" │ 54 uses │ │ │ "
|
||||
" │ 11 │ │ │ "
|
||||
" │ 20 │ │ │ "
|
||||
" │ 20 8 6 9 8 7 5 │ │ │ "
|
||||
" │ ▆▆▆▆▆ ▄▄▄▄▄ ▇▇▇▇▇ ▆▆▆▆▆▆ ▅▅▅▅▅ ▄▄▄▄▄ ██████ │ │ │ "
|
||||
" │ 0 ────────────────────────────────────────────────────────── │ │ │ "
|
||||
" │ ▲ │ │ │ "
|
||||
@@ -65,7 +65,7 @@ expression: "format!(\"{overview}\\n{skills}\")"
|
||||
" │ │ │ │ "
|
||||
" ╰────────────────────────────────────────────────────────────────╯ ╰────────────────────────────────────────────────────────────────╯ "
|
||||
" tab/1–6 section · enter/z maximize "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
" Analytics · Live account "
|
||||
" [7d] 30d · Aug 27–Sep 2, 2026 "
|
||||
@@ -79,9 +79,9 @@ expression: "format!(\"{overview}\\n{skills}\")"
|
||||
" 20 "
|
||||
" "
|
||||
" "
|
||||
" 11 "
|
||||
" 10 ▇▇▇▇▇▇▇▇▇ "
|
||||
" ▄▄▄▄▄▄▄▄ ████████ ▄▄▄▄▄▄▄▄ ▁▁▁▁▁▁▁▁ █████████ "
|
||||
" 9 11 "
|
||||
" 10 8 8 7 ▇▇▇▇▇▇▇▇▇ "
|
||||
" ▄▄▄▄▄▄▄▄ 6 ████████ ▄▄▄▄▄▄▄▄ ▁▁▁▁▁▁▁▁ 5 █████████ "
|
||||
" ████████ ▅▅▅▅▅▅▅▅ ████████ ████████ ████████ ▂▂▂▂▂▂▂▂ █████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ █████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ █████████ "
|
||||
@@ -98,4 +98,4 @@ expression: "format!(\"{overview}\\n{skills}\")"
|
||||
" ● Debugging 1 "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · R refresh · esc back · q close "
|
||||
|
||||
@@ -10,7 +10,7 @@ expression: wide
|
||||
" │ No history has been reported. │ │ 7d │ "
|
||||
" │ │ │ By feature │ "
|
||||
" │ │ │ Total usage · relative units │ "
|
||||
" │ │ │ 86 │ "
|
||||
" │ │ │ 20 73 64 91 81 100 86 │ "
|
||||
" │ │ │ 100 ▁▁▁▁ ▅▅▅▅ ▅▅▅▅ ▇▇▇▇ ▆▆▆▆ ████ ▆▆▆▆ │ "
|
||||
" │ │ │ 0 ─────────────────────────────────────────────── │ "
|
||||
" │ │ │ ▲ │ "
|
||||
@@ -27,8 +27,8 @@ expression: wide
|
||||
" │ │ │ │ "
|
||||
" │ 7d │ │ 7d │ "
|
||||
" │ By model │ │ 186 calls │ "
|
||||
" │ 574 reported messages │ │ 29 │ "
|
||||
" │ 103 │ │ 40 ▆▆▆▆ ▄▄▄▄ ▅▅▅▅ ▅▅▅▅ ▄▄▄▄ ▄▄▄▄ ▅▅▅▅ │ "
|
||||
" │ 574 reported messages │ │ 34 23 29 26 22 23 29 │ "
|
||||
" │ 62 83 107 75 59 85 103 │ │ 40 ▆▆▆▆ ▄▄▄▄ ▅▅▅▅ ▅▅▅▅ ▄▄▄▄ ▄▄▄▄ ▅▅▅▅ │ "
|
||||
" │ 150 ▃▃▃▃ ▄▄▄▄ ▅▅▅▅ ▄▄▄▄ ▃▃▃▃ ▄▄▄▄ ▅▅▅▅ │ │ 0 ──────────────────────────────────────────────── │ "
|
||||
" │ 0 ─────────────────────────────────────────────── │ │ ▲ │ "
|
||||
" │ ▲ │ │ 27 28 29 30 31 1 2 │ "
|
||||
@@ -45,7 +45,7 @@ expression: wide
|
||||
" │ │ │ │ "
|
||||
" │ 7d │ │ No history has been reported. │ "
|
||||
" │ 54 uses │ │ │ "
|
||||
" │ 11 │ │ │ "
|
||||
" │ 8 6 9 8 7 5 11 │ │ │ "
|
||||
" │ 20 ▃▃▃▃ ▂▂▂▂ ▃▃▃▃ ▃▃▃▃ ▂▂▂▂ ▂▂▂▂ ▄▄▄▄ │ │ │ "
|
||||
" │ 0 ──────────────────────────────────────────────── │ │ │ "
|
||||
" │ ▲ │ │ │ "
|
||||
@@ -61,4 +61,4 @@ expression: wide
|
||||
" "
|
||||
" "
|
||||
" tab/1–6 section · enter/z maximize "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
+12
-12
@@ -11,19 +11,17 @@ expression: selected_day
|
||||
" ──────────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
" Total usage · relative units "
|
||||
" Approximate · may be delayed up to 6 hours "
|
||||
" 100 "
|
||||
" 100 ████████ ▇▇▇▇▇▇▇▇ "
|
||||
" ▅▅▅▅▅▅▅▅ ████████ ████████ "
|
||||
" ████████ ▂▂▂▂▂▂▂▂ ████████ ████████ "
|
||||
" ▁▁▁▁▁▁▁▁ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ▇▇▇▇▇▇▇▇ ████████ ████████ ████████ ████████ "
|
||||
" 100 100 "
|
||||
" 100 91 ████████ ▇▇▇▇▇▇▇▇ "
|
||||
" ▇▇▇▇▇▇▇▇ 81 ████████ ████████ "
|
||||
" 73 ████████ ▅▅▅▅▅▅▅▅ ████████ ████████ "
|
||||
" ▆▆▆▆▆▆▆▆ 64 ████████ ████████ ████████ ████████ "
|
||||
" ████████ ▅▅▅▅▅▅▅▅ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 50 ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ▆▆▆▆▆▆▆▆ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 20 ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ▃▃▃▃▃▃▃▃ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" ████████ ████████ ████████ ████████ ████████ ████████ ████████ "
|
||||
" 0 ─────────────────────────────────────────────────────────────────────────────────────────── "
|
||||
@@ -36,7 +34,9 @@ expression: selected_day
|
||||
" ● Remote GPT-5.6-Sol 91.1% "
|
||||
" ● Remote GPT-5.5 6.8% "
|
||||
" ● Remote Other 2.1% "
|
||||
" … 3 more 0.0% "
|
||||
" ● Remote GPT-5.6-Terra 0.0% "
|
||||
" ● Remote Model E 0.0% "
|
||||
" ● Remote Model F 0.0% "
|
||||
" "
|
||||
" tab/1–6 section · z dashboard · ←/→ day · enter details "
|
||||
" r 7/30d · g group · R refresh · pgup/pgdn scroll · esc back · q close "
|
||||
" r 7/30d · g group · R refresh · esc back · q close "
|
||||
|
||||
Reference in New Issue
Block a user