RCS E2EE Status on iPhone

Is anybody else on Verizon and without RCS E2EE enabled with their Android contacts? I have others on my family plan who it works for but not me.

I’m on the latest iOS 27 developer beta FWIW.

reddit.com
u/ptweezy — 3 months ago
▲ 14 r/devtools+3 crossposts

cronstable: highly-available cron with a web UI, durable state, DAGs, clustering, MCP server, and way more

cronstable is a cron replacement that runs as a single foreground daemon that I've spent an inordinate amount of time on. It will run on basically anything because its been precompiled for basically any compute architecture that people still use. If there's a feature that another cron has that you need, I want to know about it. Beginner friendly, expert friendly. Container friendly, production ready, highly available. You get it.

From orchestrating web-scrapes, data processing, and storage to coordinating Minecraft server snapshots and upgrades. Possibilities are literally endless.

  • Scheduling: modern jobs defined in YAML; classic crontab files run unmodified; per-job timezone; optional second-level granularity
  • Failure handling: define what failed means to you; retries with exponential backoff; reports to Slack-compatible webhooks, email, Sentry, or a shell command.
  • Web dashboard (opt-in): one self-contained page served by the daemon, with live log tailing, run history, DAG graphs, cluster and fleet views, a TV wallboard, and a command palette. A REST API alongside. not sure if I'm competing with other cron solutions or DataDog at this point. But at least you don't need to SSH in to see what's going on.
  • Observability (opt-in): native Prometheus metrics; opt-in per-job CPU and peak-memory monitoring.
  • Durable state (opt-in): run history, retries, and missed-run catch-up survive restarts; job commands get key/value, cursors, fleet-wide locks, idempotency keys, artifacts, and run-scoped secrets through the CLI.
  • DAGs (opt-in): task dependencies, data hand-off between tasks, dynamic fan-out, sensors, human approval gates, backfill, crash-resume.
  • Clustering (opt-in): leader election via gossip over mutual TLS for best effort attempts at gating your jobs. Your self hosted replicas in one network can also bridge to speak to another set of self hosted replicas. Go one step further and harden it via any shared filesystem, a Kubernetes Lease, or etcd, so replicas can share one config without double-running jobs with absolute guarantee. Each job picks its own point on the liveness-vs-duplication trade-off with clusterPolicy: Leader (default) runs on the elected leader and fails closed. No quorum? Nobody runs. For jobs where a duplicate is worse than a skip (like billing, or outbound email); PreferLeader is never-skip and runs anyway when the cluster can't agree. You accept a possible double-run, for idempotent jobs that matter; EveryNode runs everywhere, for genuinely per-node work like local log rotation. No option is true exactly-once. Leader may skip, PreferLeader may double-run. But hey, at least you get to pick which way it breaks. By default the leader runs every job, but distribution: spread assigns each job to an owner by rendezvous hashing so the work fans out and can be more load balanced.
  • MCP server (opt-in): AI agents (Claude, Cursor, Copilot) can inspect jobs, DAGs, the cluster, and metrics; read-only by default, control only if enabled.
  • Packaging: pip/pipx/Homebrew; multi-arch Docker images on GHCR and Docker Hub in eight distro variants; standalone binaries for Linux, macOS, and Windows. Runs non-root with a read-only root filesystem and all capabilities dropped.

Live demo of the control panel UI with a stubbed backend (pretty cool I promise - if anything at least play with the logo cuz I spent a lot of time on it): https://html-preview.github.io/?url=https://github.com/ptweezy/cronstable/blob/develop/docs/demo/index.html ^(you might need to change the theme on your screen because on one of my screens the default theme is just way too dark. Will fix this soon. by play with the logo I mean swipe your mouse across it) 🙂

Feature Comparison chart: https://github.com/ptweezy/cronstable/blob/develop/docs/comparison.md

Source: https://github.com/ptweezy/cronstable

This is under active development, would appreciate any and all feedback. Thanks y'all!

github.com
u/ptweezy — 3 days ago

cronstable: cron with a web UI, durable state, DAGs, clustering, MCP server, and way more

cronstable is a cron replacement that runs as a single foreground daemon that I've spent an inordinate amount of time on. It will run on basically anything because its been precompiled for basically any compute architecture that people still use. If there's a feature that another cron has that you need, I want to know about it. Beginner friendly, expert friendly. Container friendly, production ready, highly available. You get it.

From orchestrating web-scrapes, data processing, and storage to coordinating Minecraft server snapshots and upgrades. Possibilities are literally endless.

  • Scheduling: modern jobs defined in YAML; classic crontab files run unmodified; per-job timezone; optional second-level granularity
  • Failure handling: define what failed means to you; retries with exponential backoff; reports to Slack-compatible webhooks, email, Sentry, or a shell command.
  • Web dashboard (opt-in): one self-contained page served by the daemon, with live log tailing, run history, DAG graphs, cluster and fleet views, a TV wallboard, and a command palette. A REST API alongside. not sure if I'm competing with other cron solutions or DataDog at this point. But at least you don't need to SSH in to see what's going on.
  • Observability (opt-in): native Prometheus metrics; opt-in per-job CPU and peak-memory monitoring.
  • Durable state (opt-in): run history, retries, and missed-run catch-up survive restarts; job commands get key/value, cursors, fleet-wide locks, idempotency keys, artifacts, and run-scoped secrets through the CLI.
  • DAGs (opt-in): task dependencies, data hand-off between tasks, dynamic fan-out, sensors, human approval gates, backfill, crash-resume.
  • Clustering (opt-in): leader election via gossip over mutual TLS for best effort attempts at gating your jobs. Your self hosted replicas in one network can also bridge to speak to another set of self hosted replicas. Go one step further and harden it via any shared filesystem, a Kubernetes Lease, or etcd, so replicas can share one config without double-running jobs with absolute guarantee. Each job picks its own point on the liveness-vs-duplication trade-off with clusterPolicy: Leader (default) runs on the elected leader and fails closed. No quorum? Nobody runs. For jobs where a duplicate is worse than a skip (like billing, or outbound email); PreferLeader is never-skip and runs anyway when the cluster can't agree. You accept a possible double-run, for idempotent jobs that matter; EveryNode runs everywhere, for genuinely per-node work like local log rotation. No option is true exactly-once. Leader may skip, PreferLeader may double-run. But hey, at least you get to pick which way it breaks. By default the leader runs every job, but distribution: spread assigns each job to an owner by rendezvous hashing so the work fans out and can be more load balanced.
  • MCP server (opt-in): AI agents (Claude, Cursor, Copilot) can inspect jobs, DAGs, the cluster, and metrics; read-only by default, control only if enabled.
  • Packaging: pip/pipx/Homebrew; multi-arch Docker images on GHCR and Docker Hub in eight distro variants; standalone binaries for Linux, macOS, and Windows. Runs non-root with a read-only root filesystem and all capabilities dropped.

Live demo of the control panel UI with a stubbed backend (pretty cool I promise - if anything at least play with the logo cuz I spent a lot of time on it): https://html-preview.github.io/?url=https://github.com/ptweezy/cronstable/blob/develop/docs/demo/index.html ^(you might need to change the theme on your screen because on one of my screens the default theme is just way too dark. Will fix this soon. by play with the logo I mean swipe your mouse across it) 🙂

Feature Comparison chart: https://github.com/ptweezy/cronstable/blob/develop/docs/comparison.md

Source: https://github.com/ptweezy/cronstable

Edit: What I may lack in commit messages hopefully I make up for with my extensive wiki

This is under active development, would appreciate any and all feedback. Thanks y'all!

reddit.com
u/ptweezy — 3 months ago

cronstable: cron with a web UI, durable state, DAGs, clustering, and an MCP server

cronstable is a cron replacement that runs as a single foreground daemon that I've spent an inordinate amount of time on. It will run on basically anything because its been precompiled for basically any compute architecture that people still use. If there's a feature that another cron has that you need, I want to know about it. Beginner friendly, expert friendly. Container friendly, production ready. You get it.

From orchestrating web-scrapes, data processing, and storage to coordinating Minecraft server snapshots and upgrades. Possibilities are literally endless.

  • Scheduling: modern jobs defined in YAML; classic crontab files run unmodified; per-job timezone; optional second-level granularity
  • Failure handling: define what failed means to you; retries with exponential backoff; reports to Slack-compatible webhooks, email, Sentry, or a shell command.
  • Web dashboard (opt-in): one self-contained page served by the daemon, with live log tailing, run history, DAG graphs, cluster and fleet views, a TV wallboard, and a command palette. A REST API alongside. not sure if I'm competing with other cron solutions or DataDog at this point. But at least you don't need to SSH in to see what's going on.
  • Observability (opt-in): native Prometheus metrics; opt-in per-job CPU and peak-memory monitoring.
  • Durable state (opt-in): run history, retries, and missed-run catch-up survive restarts; job commands get key/value, cursors, fleet-wide locks, idempotency keys, artifacts, and run-scoped secrets through the CLI.
  • DAGs (opt-in): task dependencies, data hand-off between tasks, dynamic fan-out, sensors, human approval gates, backfill, crash-resume.
  • Clustering (opt-in): leader election via gossip over mutual TLS for best effort attempts at gating your jobs. Your self hosted replicas in one network can also bridge to speak to another set of self hosted replicas. Go one step further and harden it via any shared filesystem, a Kubernetes Lease, or etcd, so replicas can share one config without double-running jobs with absolute guarantee. Each job picks its own point on the liveness-vs-duplication trade-off with clusterPolicy: Leader (default) runs on the elected leader and fails closed. No quorum? Nobody runs. For jobs where a duplicate is worse than a skip (like billing, or outbound email); PreferLeader is never-skip and runs anyway when the cluster can't agree. You accept a possible double-run, for idempotent jobs that matter; EveryNode runs everywhere, for genuinely per-node work like local log rotation. No option is true exactly-once. Leader may skip, PreferLeader may double-run. But hey, at least you get to pick which way it breaks. By default the leader runs every job, but distribution: spread assigns each job to an owner by rendezvous hashing so the work fans out and can be more load balanced.
  • MCP server (opt-in): AI agents (Claude, Cursor, Copilot) can inspect jobs, DAGs, the cluster, and metrics; read-only by default, control only if enabled.
  • Packaging: pip/pipx/Homebrew; multi-arch Docker images on GHCR and Docker Hub in eight distro variants; standalone binaries for Linux, macOS, and Windows. Runs non-root with a read-only root filesystem and all capabilities dropped.

Live demo of the control panel UI with a stubbed backend (pretty cool I promise - if anything at least play with the logo cuz I spent a lot of time on it): https://html-preview.github.io/?url=https://github.com/ptweezy/cronstable/blob/develop/docs/demo/index.html ^(you might need to change the theme on your screen because on one of my screens the default theme is just way too dark. Will fix this soon. by play with the logo I mean swipe your mouse across it) 🙂

Feature Comparison chart: https://github.com/ptweezy/cronstable/blob/develop/docs/comparison.md

Source: https://github.com/ptweezy/cronstable

This is under active development, would appreciate any and all feedback. Thanks y'all!

reddit.com
u/ptweezy — 3 months ago

yacron2 - an almost overengineered cron

Hey everyone - I'm excited to show off what I've been working on. This has mostly been designed with my own personal frustrations in mind as I've had a need for something like this for a while. Let me know if you all could use this, too.

cronstable/yacron2 is a modern cron replacement with a surprising amount of features

  • Extensive optional live web dashboard. One daemon shows every job's status, live CPU/memory, owning node, schedule, last run, next-run countdown, and a run-trend sparkline. Tail logs, run or cancel jobs, and browse run history without SSH-ing into each box. Multiple cool themes, a tons of keyboard shortcuts
  • Each release ships a self-contained binary with the runtime embedded. Just download and run. No Python needed. Linux builds (glibc and musl) cover amd64, arm64, armv7, armv6, i686, ppc64le, s390x, and riscv64; macOS (Intel and Apple Silicon, notarized) and Windows (x64/ARM64) are covered too. Also available via pip, a Homebrew tap, and multi-arch Docker images on GHCR and Docker Hub.
  • The fun jobs are in YAML but ..... yacron2 will run crontabs as-is.
  • Opt-in durable state persists history and retries across restarts, and catches up runs missed during downtime.
  • Jobs can work with each other. Define DAGs to chain jobs into real workflows: tasks pass small values downstream (XCom), fan out over a list and rejoin, wait on sensors, or pause for a manual approval before continuing. Runs are durable and lease-driven, so a workflow picks up where it left off after restart/crash. In a cluster, a single elected leader advances each run, so a task never double-fires no matter how many replicas are watching. Backfill past dates, follow the whole graph live in the dashboard, and approve, reject, or trigger runs right from there.
  • Prometheus metrics and per-job CPU/memory monitoring.
  • Optional clustering: run several replicas from one config and they elect a leader so a job never double-fires — via mutual TLS, a shared mount, a Kubernetes Lease, or etcd.
  • Security hardened and ready for production containers. Runs non-root with a read-only root filesystem and all capabilities dropped.
  • Standard crontab strings, plus a 6th field to pin a year, a 7th for second-level granularity, or a named-field object form if you prefer minute:/hour: over counting columns. Per-job timezones (any IANA zone, tzdata bundled), UTC by default, DST handled per job.
  • Sub-second-aware scheduler with zero idle cost. The daemon sleeps until the next job is actually due. This cost scales with jobs due, not jobs configured. It only shifts to a per-second cadence when a job needs it, and it's immune to clock steps: a backward NTP jump won't re-fire a slot, a forward jump won't trigger a catch-up storm.
  • reboot as a supervisor. Pair reboot with maximumRetries: -1 and yacron2 relaunches a long-running process whenever it exits. In a cluster, u/reboot jobs are deferred until the fleet converges, then run once on the right owner (never skipped forever, never fired on every node).
  • Three per-job cluster policies, each with its own tradeoff. Leader never double-runs but may skip (billing, email). PreferLeader never skips but may double-run (idempotent-but-critical work). EveryNode runs everywhere (per-node chores).
  • Spread your load. distribution: spread assigns each job to a node by rendezvous hashing, so scheduled work fans out across the cluster instead of piling on one leader. A node joining or leaving only reshuffles its share of jobs, and it ensures that it's still at-most-once for Leader jobs.
  • Pick your consistency floor. Default gossip needs zero shared state; switch to a Kubernetes Lease, etcd, or a shared-mount lease file for fenced exactly-once when you already run that store. Same job config either way.
  • Accessbility options: Easy to read font-options and colorblind modes.

MIT license. Fork of yacron, continuing from 0.19.

Please check it out and give me any and all feedback. I've been personally using this on my Raspberry Pis + Mac Mini and it's been a really great learning experience. Really just been using my own personal desires to drive my features. Use docker-compose to quickly see an example!

Repo: https://github.com/ptweezy/yacron2
PyPI: https://pypi.org/project/yacron2/

This repo is in the middle of rename to 'cronstable', FYI.

u/ptweezy — 3 months ago
▲ 7 r/madeinpython+1 crossposts

yacron2: extremely-highly-available cron

yacron2 is a cron replacement in Python with surprisingly extensive features (but only if you write your jobs in yaml....old crontabs still accepted):

The dashboard is a self-contained page that gives you every job at a glance: status, live CPU/memory usage, which node owns the job, schedule, last run, a next-run countdown, and a little run-trend sparkline so you can see whether things are getting better or worse. You can tail any job's logs in real time, run or cancel jobs on demand, scrub through run history and success rates, and drive DAG runs and approvals — all without leaving the page. Ten themes, and a keyboard shortcut for basically everything. It also keeps an eye on the whole cluster, so you're not SSH-ing into five boxes.

  • Orchestration DAGs — chain jobs with dependsOn, hand data between tasks, fan out, add approval gates, and resume a half-finished graph after a crash.
  • Per-job resource monitoring — CPU time and peak memory across each run's whole process tree, live and per run, in the dashboard and metrics. Node health shows up too, so you can see which box is sweating.
  • Clustering + leader election — run several replicas from one config and they elect a leader so nobody double-fires. Peers confirm over mutual TLS that they're actually running the same job set.
  • Prometheus metrics for the graph enjoyers, plus opt-in durable state that survives restarts.

Designed to run in production-ready locked-down containers: non-root, read-only rootfs, all capabilities dropped.

pip install yacron2 (or a prebuilt binary, if installing Python is not an option).

Repo: https://github.com/ptweezy/yacron2 · PyPI: https://pypi.org/project/yacron2/

MIT License. All feedback is welcome. This is a fork of yacron, continuing development from 0.19.

u/ptweezy — 3 months ago