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
e0652c2
docs: add AGENTS.md, make CLAUDE.md a symlink to it
jplexer Mar 9, 2026
eedf039
bluetooth/pairability: reset cached discoverable state on BT init
jplexer Mar 9, 2026
19a9734
services/voice: add mutex protection to transfer stopped handler
jplexer Mar 9, 2026
8aae49f
compositor/display: remove obelix corner code
jplexer Mar 9, 2026
d9458ba
ci: conditionally run S3 upload only in upstream repository
Mearman Mar 9, 2026
dc8119c
fw/drivers/hrm/gh3x2x: fix quality levels and split callbacks
gmarull Mar 9, 2026
2b43a57
fw/drivers/hrm/gh3x2x: disable SpO2 by default
gmarull Mar 9, 2026
f2651b2
fw/drivers/hrm/gh3x2x: enable wear detection
gmarull Mar 9, 2026
0f0aaab
fw/services/normal/activity: tweak HRM turn on/off times and criteria
gmarull Mar 9, 2026
e3e93fe
fw/drivers/hrm/gh3x2x: tweak quality thresholds
gmarull Mar 9, 2026
f505fbd
fw/services/common/hrm: add on time tracking
gmarull Mar 9, 2026
aaa4e9a
fw/drivers/hrm/gh3x2x: do not build buggy timer on main firmware
gmarull Mar 9, 2026
e11911d
gitlint: enforce area format instead of conventional commits
Mearman Mar 9, 2026
ae6892b
tests/graphics: add macOS-specific fixture support
Mearman Mar 9, 2026
5646913
tests/fakes: fix HCI whitelist address handling
Mearman Mar 9, 2026
6616c55
tests: add Docker testing scripts for CI-matched environment
Mearman Mar 9, 2026
a1e42b5
tests: add documentation for cross-platform testing
Mearman Mar 9, 2026
4358b72
tests/fw/graphics/util: fix platform suffix for Linux CI
Mearman Mar 9, 2026
e0e0171
tools: fix requirements check for Python 3.14 compatibility
Mearman Mar 10, 2026
495ff92
tests: use subprocess for rm command in wscript
Mearman Mar 10, 2026
551d572
tests: enable test_action_menu_window in build
Mearman Mar 10, 2026
0df318e
tests/fw/ui: fix include path and add vibes stub
Mearman Mar 10, 2026
582bda4
tests: remove backslash from silk platform suffix in filenames
Mearman Mar 10, 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
49 changes: 0 additions & 49 deletions .claude/CLAUDE.md

This file was deleted.

1 change: 1 addition & 0 deletions .claude/CLAUDE.md
2 changes: 1 addition & 1 deletion .github/workflows/build-firmware.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ jobs:

- name: Upload log hash dictionary
uses: Noelware/[email protected]
if: ${{ github.event_name == 'push' }}
if: ${{ github.event_name == 'push' && github.repository == 'coredevices/PebbleOS' }}
with:
access-key-id: ${{ secrets.LOG_HASH_BUCKET_KEY_ID }}
secret-key: ${{ secrets.LOG_HASH_BUCKET_SECRET }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-prf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ jobs:

- name: Upload log hash dictionary
uses: Noelware/[email protected]
if: ${{ github.event_name == 'push' }}
if: ${{ github.event_name == 'push' && github.repository == 'coredevices/PebbleOS' }}
with:
access-key-id: ${{ secrets.LOG_HASH_BUCKET_KEY_ID }}
secret-key: ${{ secrets.LOG_HASH_BUCKET_SECRET }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ jobs:

- name: Upload log hash dictionary
uses: Noelware/[email protected]
if: ${{ github.repository == 'coredevices/PebbleOS' }}
with:
access-key-id: ${{ secrets.LOG_HASH_BUCKET_KEY_ID }}
secret-key: ${{ secrets.LOG_HASH_BUCKET_SECRET }}
Expand Down
9 changes: 8 additions & 1 deletion .gitlint
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,16 @@ ignore-merge-commits=false
ignore-fixup-commits=false
ignore-fixup-amend-commits=false
ignore-squash-commits=false
regex-style-search=true

[title-match-regex]
regex=[a-z0-9/]+: .*
# Format: "area: description" where area is either:
# - A path with at least one / (e.g., fw/drivers/hrm, third_party/nonfree)
# - One of the known short areas: ci, treewide, platform, sdk, tools, resources,
# docs, waftools, settings, libc, tests, notifications, build, wscript, fw,
# third_party, ancs, compositor, console, kernel, health
# Conventional commit types like feat:, fix:, chore: are NOT allowed.
regex=^([a-z0-9_]+/[a-z0-9_/]*|ci|treewide|platform|sdk|tools|resources|docs|waftools|settings|libc|tests|notifications|build|wscript|fw|third_party|ancs|compositor|console|kernel|health|gitlint|readme|requirements|python_libs|pbl-tool|pbl|moddable|libutil|iconography|gitignore|capabilities|asterix|activity|accel): .*

[title-max-length]
line-length=100
49 changes: 49 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# PebbleOS

PebbleOS is the operating system running on Pebble smartwatches.

## Organization

- `docs`: project documentation
- `python_libs`: tools used in multiple areas, e.g. log dehashing, console, etc.
- `resources`: firmware resources (icons, fonts, etc.)
- `sdk`: application SDK generation files
- `src`: firmware source
- `tests`: tests
- `third_party`: third-party code in git submodules, also includes glue code
- `tools`: a variety of tools or scripts used in multiple areas, from build
system, tests, etc.
- `waftools`: scripts used by the build system

## Code style

- clang-format for C code

## Firmware development

- Configure: `./waf configure --board BOARD_NAME`

- Board names can be obtained from `./waf --help`
- `--release` enables release mode
- `--mfg` enables manufacturing mode
- `--qemu` enables QEMU mode

- Build main firmware: `./waf build`
- Build recovery firmware (PRF): `./waf build_prf`
- Run tests: `./waf test`

## Git rules

Main rules:

- Commit using `-s` git option, so commits have `Signed-Off-By`
- Always indicate commit is co-authored by Claude
- Commit in small chunks, trying to preserve bisectability
- Commit format is `area: short description`, with longer description in the
body if necessary
- Run `gitlint` on every commit to verify rules are followed

Others:

- If fixing Linear or GitHub issues, include in the commit body a line with
`Fixes XXX`, where XXX is the issue number.
2 changes: 0 additions & 2 deletions src/fw/drivers/hrm/as7000/as7000.c
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,6 @@ static void prv_disable(HRMDevice *dev) {
WTF;
}
led_disable(LEDEnablerHRM);
analytics_stopwatch_stop(ANALYTICS_DEVICE_METRIC_HRM_ON_TIME);
}

// NOTE: the caller must hold the device's state lock
Expand All @@ -525,7 +524,6 @@ static void prv_enable(HRMDevice *dev) {

} else if (dev->state->enabled_state == HRMEnabledState_Disabled) {
led_enable(LEDEnablerHRM);
analytics_stopwatch_start(ANALYTICS_DEVICE_METRIC_HRM_ON_TIME, AnalyticsClient_System);

// Enable the device and schedule a timer callback for when we can start communicating with it.
gpio_output_set(&dev->en_gpio, true);
Expand Down
Loading
Loading