Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
23a6f86
⚡ Bolt: [performance improvement] Replace padStart with inline ternar…
seonghobae Aug 24, 2026
24f8c05
test(perf): prove date formatter gain against protected base
seonghobae Aug 24, 2026
0f10184
test(perf): bind benchmark to exact contributor head
seonghobae Aug 24, 2026
c8a9521
test(perf): reject stale protected-base snapshots
seonghobae Aug 24, 2026
f6eb6db
fix(perf): bind benchmark to live protected base
seonghobae Aug 24, 2026
dd5476a
test(perf): expose fixed-order benchmark bias
seonghobae Aug 24, 2026
02661e7
test(perf): register benchmark order regression
seonghobae Aug 24, 2026
4dcba5a
fix(perf): add counterbalanced benchmark aggregation
seonghobae Aug 24, 2026
657dce1
fix(perf): counterbalance protected-base benchmark
seonghobae Aug 24, 2026
6b721fd
⚡ Bolt: [performance improvement] Replace padStart with inline ternar…
seonghobae Aug 25, 2026
040a6eb
⚡ Bolt: [performance improvement] Replace padStart with inline ternar…
seonghobae Aug 25, 2026
aa18480
fix(security): remove scanner bypass from date benchmark branch
seonghobae Aug 25, 2026
19f37b2
fix(perf): restore benchmark evidence after branch overwrite
seonghobae Aug 25, 2026
8e01cb6
test(perf): require parity-safe benchmark checksums
seonghobae Aug 25, 2026
91bb46f
fix(perf): preserve benchmark checksum evidence
seonghobae Aug 25, 2026
0a9e5e1
fix(perf): keep benchmark checksum meaningful for even samples
seonghobae Aug 25, 2026
140c1cc
test(perf): cover documented local benchmark execution
seonghobae Aug 25, 2026
3f4efe6
fix(perf): support documented local benchmark execution
seonghobae Aug 25, 2026
4d24758
test(perf): cover first-push benchmark base resolution
seonghobae Aug 25, 2026
23beb2b
fix(perf): resolve first-push benchmark base safely
seonghobae Aug 25, 2026
68a82ac
test(e2e): require offline benchmark isolation
seonghobae Aug 25, 2026
b0e7fa8
fix(e2e): isolate network benchmark from offline suite
seonghobae Aug 25, 2026
98f4354
fix(e2e): mark network-dependent date benchmark
seonghobae Aug 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .jules/bolt.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
## 2026-07-12 - Optimize renderTaskRow DOM allocations
**Learning:** Caching unattached template nodes and instantiating them via `.cloneNode(false)` reduces DOM instantiation overhead in O(N) render loops significantly.
**Action:** Apply this optimization to other hot-path rendering elements such as rows, cells, and stack containers.
## 2026-08-25 - Benchmark fixed-width date formatting before accepting micro-optimizations
**Learning:** Engine-internal explanations are not acceptance evidence. A fixed-width date formatter optimization must preserve every observable output while demonstrating a material median improvement against an immutable protected-base revision in the same browser/runtime.
**Action:** Keep date-format micro-optimizations only when the protected Chromium A/B benchmark proves exact semantic parity across a leap-year date corpus and at least a 10% median improvement; otherwise prefer the clearer implementation.
20 changes: 15 additions & 5 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -2682,22 +2682,32 @@ function clamp(value, min, max) {
return Math.min(max, Math.max(min, value));
}

// ⚡ Bolt Optimization: Use inline ternary operator instead of String.padStart()
// to avoid unnecessary string object allocations and JS-to-C++ overhead in hot loops.
function formatDateInput(date) {
const year = date.getUTCFullYear();
const month = String(date.getUTCMonth() + 1).padStart(2, '0');
const day = String(date.getUTCDate()).padStart(2, '0');
const m = date.getUTCMonth() + 1;
const d = date.getUTCDate();
const month = m < 10 ? '0' + m : '' + m;
const day = d < 10 ? '0' + d : '' + d;
Comment thread
seonghobae marked this conversation as resolved.
return `${year}-${month}-${day}`;
}

function formatLocalDateInput(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const m = date.getMonth() + 1;
const d = date.getDate();
const month = m < 10 ? '0' + m : '' + m;
const day = d < 10 ? '0' + d : '' + d;
return `${year}-${month}-${day}`;
}

function formatCompactDate(date) {
return `${date.getFullYear()}${String(date.getMonth() + 1).padStart(2, '0')}${String(date.getDate()).padStart(2, '0')}`;
const m = date.getMonth() + 1;
const d = date.getDate();
const month = m < 10 ? '0' + m : '' + m;
const day = d < 10 ? '0' + d : '' + d;
return `${date.getFullYear()}${month}${day}`;
}

function formatPercent(value, digits) {
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
"coverage": "npm run test:coverage",
"server": "node server/server.mjs",
"test:api": "node tests/api/auth-secret.test.mjs && node tests/api/smoke.mjs && node tests/api/ratelimit.test.mjs && node tests/api/attachment-status.test.mjs && node tests/api/session-revocation.test.mjs && node tests/api/orchestrator-attribution.test.mjs",
"test:unit": "node tests/unit/opencode-config.test.mjs && node tests/unit/changelog-release-notes.test.mjs && node tests/unit/analytics.test.mjs && node tests/unit/cpm.test.mjs && node tests/unit/baseline-compare.test.mjs && node tests/unit/workload.test.mjs && node tests/unit/cost-evm.test.mjs && node tests/unit/msproject.test.mjs && node tests/unit/auth-password.test.mjs && node tests/unit/editor-unsaved.test.mjs && node tests/unit/static-coverage-evidence.test.mjs && node tests/unit/dep-types.test.mjs && node tests/unit/weekly-report.test.mjs && node tests/unit/clearfolio.test.mjs && node tests/unit/clearfolio-adapter-mock-hmac.test.mjs && node tests/unit/orchestrator.test.mjs && node tests/unit/orchestrator-coverage.test.mjs && node tests/unit/orchestrator-attribution.test.mjs && node tests/unit/sprint-stats.test.mjs && node tests/unit/burndown.test.mjs && node tests/unit/pm-analysis.test.mjs && node tests/unit/cloud-sync-security.test.mjs && node tests/unit/attachment-status.test.mjs && node tests/unit/clearfolio-status-signal.test.mjs && node tests/unit/coverage-script-contract.test.mjs && node tests/unit/toast-accessibility.test.mjs",
"test:unit": "node tests/unit/opencode-config.test.mjs && node tests/unit/changelog-release-notes.test.mjs && node tests/unit/analytics.test.mjs && node tests/unit/cpm.test.mjs && node tests/unit/baseline-compare.test.mjs && node tests/unit/workload.test.mjs && node tests/unit/cost-evm.test.mjs && node tests/unit/msproject.test.mjs && node tests/unit/auth-password.test.mjs && node tests/unit/editor-unsaved.test.mjs && node tests/unit/static-coverage-evidence.test.mjs && node tests/unit/dep-types.test.mjs && node tests/unit/weekly-report.test.mjs && node tests/unit/clearfolio.test.mjs && node tests/unit/clearfolio-adapter-mock-hmac.test.mjs && node tests/unit/orchestrator.test.mjs && node tests/unit/orchestrator-coverage.test.mjs && node tests/unit/orchestrator-attribution.test.mjs && node tests/unit/sprint-stats.test.mjs && node tests/unit/burndown.test.mjs && node tests/unit/pm-analysis.test.mjs && node tests/unit/cloud-sync-security.test.mjs && node tests/unit/attachment-status.test.mjs && node tests/unit/clearfolio-status-signal.test.mjs && node tests/unit/coverage-script-contract.test.mjs && node tests/unit/toast-accessibility.test.mjs && node tests/unit/date-format-benchmark-order.test.mjs",
"test:coverage": "c8 --all --include=app.js --include=cloud-sync.js --include=scripts/ci/static_coverage_evidence.mjs --include=server/attachment_status.mjs --include=server/app.mjs --include=server/auth.mjs --include=server/clearfolio.mjs --include=server/orchestrator.mjs --reporter=json --reporter=json-summary npm run test:coverage:cases",
"test:coverage:cases": "node tests/unit/coverage-script-contract.test.mjs && node tests/unit/attachment-status.test.mjs && node tests/unit/clearfolio-status-signal.test.mjs && node tests/unit/clearfolio-adapter-mock-hmac.test.mjs && node tests/unit/orchestrator.test.mjs && node tests/unit/orchestrator-coverage.test.mjs && node tests/unit/orchestrator-attribution.test.mjs && node tests/unit/msproject.test.mjs && node tests/unit/auth-password.test.mjs && node tests/unit/editor-unsaved.test.mjs && node tests/unit/static-coverage-evidence.test.mjs && npm run test:api",
"test:e2e": "playwright test",
"test:e2e:headed": "playwright test --headed",
"test:e2e:cloud": "playwright install chromium && playwright test tests/e2e/cloud.spec.js tests/e2e/toast-accessibility.spec.js",
"test:e2e": "playwright test --grep-invert @benchmark",
"test:e2e:headed": "playwright test --headed --grep-invert @benchmark",
"test:e2e:cloud": "playwright install chromium && playwright test tests/e2e/cloud.spec.js tests/e2e/toast-accessibility.spec.js tests/e2e/date-format-performance.spec.js",
"test:fuzz": "playwright install chromium && playwright test tests/e2e/csv_formula_fuzz.spec.js",
"fuzz": "node --test tests/fuzz/*.mjs"
},
Expand Down
Loading
Loading