# Diagnosis Report: Hidden Task Checkboxes — doany-docs-plugin v2.4.0

**Date:** 2026-04-14  
**Vault:** `doany-shared`  
**Plugin:** `doany-docs-plugin` v2.4.0  
**Severity:** High — blocks team enablement session today  

---

## 1. Summary

After the v2.4.0 update (released 2026-04-11 08:15 UTC), all `.task-list-item-checkbox` elements are invisible across every note in the `doany-shared` vault. The checkboxes are still present in the DOM and still toggle state on click, but render with zero visual footprint.

## 2. Evidence Collected

| Source | Finding |
|--------|---------|
| `bug-report.md` (Lena Park) | Checkboxes invisible since v2.4.0 auto-update; toggle via click still works |
| `manifest.json` | Confirms plugin at v2.4.0; no version rollback has occurred |
| `sample-tasks.md` | Standard `- [ ]` / `- [x]` markdown — no malformed syntax |
| v2.4.0 changelog (per bug report) | Mentions **"refined task styling for custom themes"** |
| Rollback test (Lena) | v2.3.1 restores visible checkboxes → confirms CSS regression in v2.4.0 |

## 3. Root Cause Analysis

**Most likely cause: CSS regression in the v2.4.0 "refined task styling" change.**

The v2.4.0 changelog explicitly references task styling modifications for custom themes. Given that:
- Checkboxes are **in the DOM** (click toggles work)
- Checkboxes are **not visible** (no UI rendered)
- Rolling back to v2.3.1 **fixes** the issue

The plugin's injected CSS is almost certainly applying one of the following to `.task-list-item-checkbox`:

| Suspect CSS Property | Likely Bad Value | Effect |
|---------------------|-----------------|--------|
| `opacity` | `0` | Checkbox transparent but still interactive ✅ **Most likely** |
| `visibility` | `hidden` | Checkbox invisible but occupies space |
| `display` | `none` | Checkbox removed from layout (but click could still fire on list item) |
| `width` / `height` | `0` | Checkbox collapsed to zero size |
| `color` + `accent-color` | `transparent` | Checkbox drawn but matches background |

**The `opacity: 0` pattern is the #1 suspect** because it perfectly explains why click-toggle still works (element is in flow, receives pointer events) while being completely invisible.

## 4. Verification Steps (run on a machine with the `obsidian` CLI)

```bash
# 1. Reload plugin and check for errors
obsidian plugin:reload id=doany-docs-plugin vault="doany-shared"
obsidian dev:errors vault="doany-shared"
obsidian dev:console level=error vault="doany-shared"

# 2. Inspect the checkbox DOM — confirm elements exist
obsidian dev:dom selector=".task-list-item-checkbox" vault="doany-shared"

# 3. Inspect computed CSS — look for opacity/display/visibility
obsidian dev:css selector=".task-list-item-checkbox" vault="doany-shared"

# 4. Screenshot the broken state for evidence
obsidian dev:screenshot path=checkbox-bug-broken.png vault="doany-shared"
```

## 5. Recommended Fix

**In the plugin's CSS** (typically `styles.css` inside the plugin directory), find the rule targeting `.task-list-item-checkbox` added in v2.4.0 and correct it:

```css
/* BAD — v2.4.0 likely introduced something like: */
.task-list-item-checkbox {
  opacity: 0;        /* or visibility: hidden / display: none */
}

/* FIX — restore checkbox visibility: */
.task-list-item-checkbox {
  opacity: 1;
  visibility: visible;
  display: inline-block;  /* or revert to Obsidian default */
  width: auto;
  height: auto;
}
```

### Quick hotfix without editing plugin source:

Add a **CSS snippet** in Obsidian to override the plugin's broken rule:

1. Open **Settings → Appearance → CSS snippets**
2. Create `fix-checkboxes.css` with:

```css
.task-list-item-checkbox {
  opacity: 1 !important;
  visibility: visible !important;
  display: inline-block !important;
}
```

3. Enable the snippet → checkboxes should reappear immediately.
4. Take a screenshot to confirm:
```bash
obsidian dev:screenshot path=checkbox-bug-fixed.png vault="doany-shared"
```

## 6. Longer-Term

- File a bug with the plugin author referencing the v2.4.0 "refined task styling" CSS regression
- Keep the CSS snippet active as a workaround until v2.4.1 ships
- Pin the plugin version to avoid auto-update surprises before enablement sessions

---

**⚠️ Note:** Live screenshots and DOM/CSS inspection could not be completed — the `obsidian` CLI was not available in this environment. Please run the verification commands in §4 on the vault machine and attach screenshots to this report before the enablement session.

---

*Report generated 2026-04-14 by Claude Code*
